অ্যাপ অ্যাকশন সহ Google অ্যাসিস্ট্যান্টে একটি Android অ্যাপ প্রসারিত করুন

1. ওভারভিউ

অ্যাপ অ্যাকশনগুলির সাহায্যে, আপনি সরাসরি অ্যাপের বৈশিষ্ট্যগুলিতে যেতে এবং আপনার ভয়েস ব্যবহার করে কাজগুলি সম্পূর্ণ করতে Google সহকারী ব্যবহার করতে পারেন। একজন অ্যান্ড্রয়েড ডেভেলপার হিসেবে, আপনি অ্যাপ অ্যাকশন যোগ করতে সক্ষমতার উপাদান প্রয়োগ করেন। ক্ষমতাগুলি সহকারীকে জানতে দেয় যে কোন অ্যাপের বৈশিষ্ট্যগুলি ব্যবহারকারীর ভয়েস অনুরোধগুলিকে সমর্থন করে এবং আপনি কীভাবে সেই অনুরোধগুলি পূরণ করতে চান।

এই কোডল্যাব অ্যাপ অ্যাকশনগুলির সাথে বিকাশের জন্য প্রাথমিক স্তরের ধারণাগুলি কভার করে৷ এই কোডল্যাবটি অনুসরণ করার জন্য আপনার অ্যান্ড্রয়েড অ্যাপস এবং অ্যান্ড্রয়েড ইন্টেন্ট তৈরি করার পূর্ব অভিজ্ঞতা থাকতে হবে। আপনি যদি অ্যান্ড্রয়েডে নতুন হন তবে পরিবর্তে Android বিকাশকারী মৌলিক বিষয়গুলির জন্য কোডল্যাবগুলির একটি দিয়ে শুরু করতে চাইতে পারেন৷

আপনি কি নির্মাণ করবেন

এই কোডল্যাবে, আপনি একটি নমুনা ফিটনেস অ্যান্ড্রয়েড অ্যাপে দুটি অ্যাপ অ্যাকশন বিল্ট-ইন ইনটেন্ট (BII) যুক্ত করবেন, ব্যবহারকারীদের তাদের ভয়েস ব্যবহার করে একটি ব্যায়াম টাইমার শুরু করতে এবং বন্ধ করতে সক্ষম করে।

আপনি কি শিখবেন

অ্যানড্রয়েড অ্যাপে অ্যাসিস্ট্যান্টকে প্রসারিত করতে স্বাস্থ্য এবং ফিটনেস বিভাগ থেকে কীভাবে BII ব্যবহার করবেন তা আপনি শিখবেন। আপনি আপনার BII পরীক্ষা করার জন্য Android স্টুডিওর জন্য Google সহকারী প্লাগইন ব্যবহার করতে শিখবেন।

পূর্বশর্ত

চালিয়ে যাওয়ার আগে, নিশ্চিত করুন যে আপনার পরিবেশে নিম্নলিখিত সরঞ্জামগুলি রয়েছে:

  • Git ইনস্টল সহ শেল কমান্ড চালানোর জন্য একটি টার্মিনাল।
  • অ্যান্ড্রয়েড স্টুডিওর সর্বশেষ সংস্করণ।
  • [Google Play Console][]-এ অ্যাক্সেস সহ একটি Google অ্যাকাউন্ট।
  • প্লে স্টোরে ইন্টারনেট অ্যাক্সেস সহ একটি শারীরিক বা ভার্চুয়াল অ্যান্ড্রয়েড ডিভাইস।

চালিয়ে যাওয়ার আগে নিশ্চিত হয়ে নিন যে একই Google অ্যাকাউন্টটি Android Studio এবং Google অ্যাপে আপনার পরীক্ষামূলক ডিভাইসে সাইন ইন করা আছে।

2. এটি কিভাবে কাজ করে তা বুঝুন

অ্যাপ অ্যাকশনগুলি Google অ্যাসিস্ট্যান্ট থেকে ব্যবহারকারীদের আপনার অ্যান্ড্রয়েড অ্যাপের সাথে সংযুক্ত করে। তারা কিভাবে কাজ করে?

যখন কোনও ব্যবহারকারী অ্যাসিস্ট্যান্টকে আপনার অ্যাপ ব্যবহার করে কোনও কাজ করতে বলেন, অ্যাসিস্ট্যান্ট আপনার অ্যাপের shortcuts.xml xml XML রিসোর্সে সংজ্ঞায়িত অ্যাপ অ্যাকশন capability সাথে তাদের কোয়েরি মেলে।

Google অ্যাসিস্ট্যান্ট কীভাবে অ্যাপ অ্যাকশন ভয়েস কোয়েরি প্রক্রিয়া করে তা দেখানোর একটি ফ্লো ডায়াগ্রাম

চিত্র 1. অ্যাসিস্ট্যান্ট কীভাবে একটি অ্যাপ অ্যাকশন ভয়েস কোয়েরি প্রক্রিয়া করে তা প্রদর্শন করে একটি ফ্লো ডায়াগ্রাম।

প্রতিটি ক্ষমতা উপাদান সংজ্ঞায়িত করে:

  • একটি অভিপ্রায় : অ্যাপ অ্যাকশন ভয়েস অভিপ্রায় যা সক্ষমতা ট্রিগার করবে।
  • এক বা একাধিক পূর্ণতা : Android ইন্টেন্ট বা গভীর লিঙ্ক যা Assistant অ্যাপটি চালু করতে এবং ব্যবহারকারীর ভয়েস অনুরোধ পূরণ করতে তৈরি করে। পরিপূর্ণতার সংজ্ঞাগুলি নির্দিষ্ট করে যে ব্যবহারকারীর ক্যোয়ারী থেকে কোন প্যারামিটারগুলি প্রত্যাশিত, এবং কীভাবে সেই প্যারামিটারগুলি লঞ্চ নির্দেশাবলীতে এনকোড করা উচিত৷

অভিপ্রায়

ন্যাচারাল ল্যাঙ্গুয়েজ আন্ডারস্ট্যান্ডিং (NLU), একটি অভিপ্রায় হল ব্যবহারকারীর বাক্যাংশের একটি গ্রুপ যা একই রকম অর্থ বহন করে। গুগল কয়েক ডজন "বিল্ট-ইন" ইন্টেন্ট (BII) তৈরি করেছে যা অ্যাপ অ্যাকশনের সাথে উপলব্ধ বিভিন্ন ধরণের অনুরোধের কভার করে। উদাহরণ স্বরূপ, সহকারীকে ORDER_MENU_ITEM BII-এর সাথে "অর্ডার একটি পিৎজা" বা "আমাকে ডেজার্ট মেনু দেখান" বাক্যাংশগুলিকে যুক্ত করতে প্রশিক্ষিত করা হয়। অ্যাপ অ্যাকশনগুলির সাহায্যে, আপনি অ্যাপ কার্যকারিতাতে সাধারণ ভয়েস অনুরোধগুলিকে দ্রুত প্রসারিত করতে এই BIIগুলি ব্যবহার করতে পারেন।

পূর্ণতা

যখন একটি ব্যবহারকারীর অনুরোধ shortcuts.xml এ একটি অ্যাপ অ্যাকশন ট্রিগার করে, তখন আপনার অ্যান্ড্রয়েড অ্যাক্টিভিটি অবশ্যই ইনকামিং অ্যান্ড্রয়েড অভিপ্রায় বা গভীর লিঙ্ক সনাক্ত করে পরিচালনা করতে হবে এবং ব্যবহারকারীকে তাদের পছন্দসই কার্যকারিতা প্রদান করতে হবে। ফলাফল হল একটি ভয়েস-চালিত ব্যবহারকারীর অভিজ্ঞতা যেখানে সহকারী ব্যবহারকারীর প্রশ্নের উত্তরে আপনার অ্যাপটি ব্যবহার করে।

3. আপনার উন্নয়ন পরিবেশ প্রস্তুত করুন

এই কোডল্যাবটি অ্যান্ড্রয়েডের জন্য ফিটনেস নমুনা অ্যাপ ব্যবহার করে। এই অ্যাপটি ব্যবহারকারীদের একটি ব্যায়াম টাইমার শুরু এবং বন্ধ করতে দেয় এবং তাদের ব্যায়ামের রুটিন সম্পর্কে পরিসংখ্যান দেখতে দেয়।

আপনার বেস ফাইল ডাউনলোড করুন

এই কোডল্যাবের জন্য বেস ফাইলগুলি পেতে, গিটহাব সংগ্রহস্থল ক্লোন করতে নিম্নলিখিত কমান্ডটি চালান:

git clone --branch codelab-start https://github.com/actions-on-google/appactions-fitness-kotlin.git

একবার আপনি সংগ্রহস্থলটি ক্লোন করার পরে, এটি অ্যান্ড্রয়েড স্টুডিওতে খুলুন:

  1. অ্যান্ড্রয়েড স্টুডিওতে স্বাগতম ডায়ালগে, ইমপোর্ট প্রোজেক্টে ক্লিক করুন।
  2. আপনি যেখানে রেপো ক্লোন করেছেন সেই ফোল্ডারটি খুঁজুন এবং নির্বাচন করুন।

অ্যান্ড্রয়েড অ্যাপ্লিকেশন আইডি আপডেট করুন

অ্যাপের অ্যাপ্লিকেশান আইডি আপডেট করা আপনার পরীক্ষা ডিভাইসে অ্যাপটিকে অনন্যভাবে সনাক্ত করে এবং অ্যাপটি প্লে কনসোলে আপলোড করা হলে একটি "ডুপ্লিকেট প্যাকেজ নাম" ত্রুটি এড়ায়। অ্যাপ্লিকেশন আইডি আপডেট করতে, app/build.gradle খুলুন:

android {
...
  defaultConfig {
    applicationId "com.MYUNIQUENAME.android.fitactions"
    ...
  }
}

applicationId ক্ষেত্রে "MYUNIQUENAME" প্রতিস্থাপন করুন আপনার জন্য অনন্য কিছুতে।

আপনার ডিভাইসে অ্যাপটি ব্যবহার করে দেখুন

অ্যাপের কোডে আরও পরিবর্তন করার আগে, নমুনা অ্যাপটি কী করতে পারে সে সম্পর্কে একটি ধারণা পেতে সহায়ক। আপনার ডেভ পরিবেশে অ্যাপটি পরীক্ষা করার জন্য এই পদক্ষেপগুলি জড়িত:

  1. আপনার ভার্চুয়াল বা ফিজিক্যাল অ্যান্ড্রয়েড টেস্ট ডিভাইস খোলা হচ্ছে।
  2. অ্যাসিস্ট্যান্ট অ্যাপ কাজ করছে কিনা তা যাচাই করা হচ্ছে।
  3. আপনার ডিভাইসে নমুনা অ্যাপ্লিকেশন স্থাপন এবং চালানোর জন্য Android স্টুডিও ব্যবহার করে।

আপনার অ্যাপ পরীক্ষা করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যান্ড্রয়েড স্টুডিওতে, রান > রান অ্যাপ নির্বাচন করুন বা রান ক্লিক করুন acabcb8f8634af20.png টুলবারে
  2. একটি ভার্চুয়াল ডিভাইস ব্যবহার করলে, ডিপ্লয়মেন্ট টার্গেট নির্বাচন করুন ডায়ালগে, একটি ভার্চুয়াল ডিভাইস নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন। প্রস্তাবিত OS সংস্করণটি Android 8 (API স্তর 26) বা উচ্চতর, যদিও অ্যাকশনগুলি Android 5 (API স্তর 21) এর আগে থেকেই ডিভাইসগুলিতে চলে৷
  3. অ্যাপটি খোলার পরে, অ্যাসিস্ট্যান্ট সেট আপ করতে হোম বোতামটি দীর্ঘক্ষণ প্রেস করুন এবং এটি কাজ করে কিনা তা যাচাই করুন। অ্যাসিস্ট্যান্ট-এ সাইন-ইন না করে থাকলে
  4. অ্যাপটি আবার খুলুন।

ফিট অ্যাকশন অ্যাপ খোলা, ব্যায়ামের পরিসংখ্যান দেখানো ফোন।

চিত্র 2। ফিট অ্যাকশনের নমুনা অ্যাপ ব্যায়ামের পরিসংখ্যান প্রদর্শন করছে।

সংক্ষিপ্তভাবে অ্যাপটি কী করতে পারে তা দেখতে দেখুন। রান আইকনে আলতো চাপলে একটি ব্যায়াম টাইমার শুরু হয় এবং X আইকনে আলতো চাপলে টাইমার বন্ধ হয়ে যায়। অ্যাপ অ্যাকশনের মাধ্যমে ভয়েস কন্ট্রোলের জন্য এই কাজগুলি আপনি সক্ষম করবেন।

গুগল অ্যাসিস্ট্যান্ট প্লাগইন ইনস্টল করুন

Google অ্যাসিস্ট্যান্ট প্লাগইন আপনাকে একটি টেস্ট ডিভাইসে আপনার অ্যাপ অ্যাকশনগুলি পরীক্ষা করার অনুমতি দেয়। অ্যান্ড্রয়েড স্টুডিওতে যোগ করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ফাইল > সেটিংসে যান ( অ্যান্ড্রয়েড স্টুডিও > ম্যাকওএসে পছন্দ )।
  2. প্লাগইন বিভাগে, মার্কেটপ্লেসে যান এবং "গুগল সহকারী" অনুসন্ধান করুন।
  3. টুলটি ইনস্টল করুন এবং অ্যান্ড্রয়েড স্টুডিও পুনরায় চালু করুন।

4. শুরু ব্যায়াম BII ক্ষমতা যোগ করুন

actions.intent.START_EXERCISE BII ব্যবহারকারীদের একটি অ্যাপ খুলতে এবং তাদের ভয়েস ব্যবহার করে একটি ওয়ার্কআউট শুরু করতে দেয়৷ এই ধাপে, আপনি এই BII-এর জন্য একটি ক্ষমতা প্রয়োগ করেন, যা ব্যবহারকারীদের ফিটনেস অ্যাপে একটি রান শুরু করার জন্য সহকারীকে বলার অনুমতি দেয়।

ক্ষমতা সংজ্ঞায়িত করুন

সহকারী নিম্নলিখিত ধাপগুলির সাথে ভয়েস কমান্ড ভয়েস প্রক্রিয়া করতে shortcuts.xml এ সংজ্ঞায়িত capability উপাদান ব্যবহার করে:

  1. অ্যাসিস্ট্যান্ট আপনার অ্যাপের ক্ষমতায় সংজ্ঞায়িত একটি BII-এর সাথে ব্যবহারকারীর ভয়েস কোয়েরি মেলে।
  2. সহকারী ক্যোয়ারী থেকে BII প্যারামিটারে মান বের করে। প্রতিটি প্যারামিটার একটি জেনারেটেড Intent সাথে সংযুক্ত একটি Bundle যোগ করা হয়।
  3. অ্যাসিস্ট্যান্ট অ্যাপটি চালু করতে Intent ব্যবহার করে, অ্যাপটিকে বান্ডিল প্যারামিটারগুলিতে অ্যাক্সেস দেয়।

START_EXERCISE BII exercise.name BII প্যারামিটার সমর্থন করে৷ ব্যবহারকারীদের অ্যাপে ট্র্যাক করার জন্য ব্যায়ামের ধরন নির্দিষ্ট করার অনুমতি দিতে আপনি এই প্যারামিটারটি ব্যবহার করবেন।

app/src/main/res/xml নমুনা প্রজেক্ট ডিরেক্টরিতে অবস্থিত shortcuts.xml এ এই capability যোগ করে আপনার অ্যাপে START_EXERCISE BII যোগ করুন:

<!-- shortcuts.xml -->

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:action="android.intent.action.VIEW"
    android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
    android:targetClass="com.devrel.android.fitactions.FitMainActivity">
    <parameter
      android:name="exercise.name"
      android:key="exerciseType"/>
  </intent>
</capability>

PUT_YOUR_APPLICATION_ID_HERE আগের ধাপে আপনার সংজ্ঞায়িত অনন্য applicationId দিয়ে প্রতিস্থাপন করুন।

পূর্ববর্তী নমুনা XML:

  • START_EXERCISE BII এর জন্য একটি ক্ষমতা ঘোষণা করে৷
  • অ্যাপ্লিকেশানটি চালু করার জন্য সহায়ক যে Android intent তৈরি করে তা নির্দিষ্ট করে:
    • targetPackage এবং targetClass অ্যাট্রিবিউট প্রাপ্তির কার্যকলাপ নির্দিষ্ট করে।
    • parameter অ্যাট্রিবিউট exercise.name BII প্যারামিটারকে Bundle এক্সট্রা অ্যাক্টিভিটি দ্বারা প্রাপ্ত exerciseType -এ ম্যাপ করে।

একটি ইনলাইন ইনভেন্টরি দিয়ে BII প্যারামিটারগুলি পরিচালনা করুন

BII প্যারামিটারগুলি সহকারী ব্যবহারকারীর ক্যোয়ারী থেকে বের করা উপাদানগুলিকে উপস্থাপন করে। উদাহরণ স্বরূপ, যখন একজন ব্যবহারকারী বলেন, "Hey Google, ExampleApp-এ রান শুরু করুন", তখন Assistant exercise.name schema.org BII প্যারামিটারে "রান" বের করে। কিছু BII-এর জন্য, আপনি সহকারীকে আপনার অ্যাপের প্রত্যাশিত শনাক্তকারীর সেটের সাথে BII প্যারামিটারগুলি মেলাতে নির্দেশ দিতে পারেন।

আপনি BII প্যারামিটারে ইনলাইন ইনভেন্টরি উপাদানগুলিকে আবদ্ধ করে এটি করেন। একটি ইনলাইন ইনভেন্টরি হল সমর্থিত BII প্যারামিটার মানগুলির একটি সেট, যেমন "রান", "হাইক", এবং "জগ", এবং তাদের সংশ্লিষ্ট শর্টকাট আইডি, যেমন EXERCISE_RUN । এই ইনভেনটরি বাইন্ডিং সহকারীকে আপনার পরিপূর্ণতা অ্যাক্টিভিটির জন্য কাঁচা কোয়েরি মানের পরিবর্তে মানানসই প্যারামিটারের জন্য শর্টকাট আইডি পাস করতে সক্ষম করে।

কিছু BII পরামিতি, যেমন exercise.name , কাজ করার জন্য একটি ইনলাইন ইনভেন্টরি প্রয়োজন। এই প্যারামিটারটি পরিচালনা করতে, shortcuts.xml এ নিম্নলিখিত ইনভেন্টরি shortcut উপাদানগুলি যুক্ত করুন:

<!-- shortcuts.xml -->

<shortcuts>
  <shortcut
    android:shortcutId="running"
    android:shortcutShortLabel="@string/activity_running">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/runningSynonyms"/>
    </capability-binding>
  </shortcut>

  <shortcut
    android:shortcutId="walking"
    android:shortcutShortLabel="@string/activity_walking">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/walkingSynonyms"/>
    </capability-binding>
  </shortcut>

  <shortcut
    android:shortcutId="cycling"
    android:shortcutShortLabel="@string/activity_cycling">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/cyclingSynonyms"/>
    </capability-binding>
  </shortcut>

  <capability> ... </capability>
</shortcuts>

পূর্ববর্তী কোডে, আপনি অ্যাপের সমর্থিত ব্যায়ামের ধরনগুলির জন্য একটি ইনলাইন ইনভেন্টরি প্রতিনিধিত্বকারী তিনটি শর্টকাট সংজ্ঞায়িত করেছেন: দৌড়ানো, হাঁটা এবং সাইকেল চালানো। প্রতিটি শর্টকাট নিম্নলিখিত উপায়ে সক্ষমতার সাথে আবদ্ধ:

  • প্রতিটি capability-binding এলিমেন্টের android:key অ্যাট্রিবিউট একই START_EXCERCISE BII কে বোঝায় যা সক্ষমতার জন্য সংজ্ঞায়িত করা হয়েছে।
  • exercise.name BII প্যারামিটারের প্রতিটি শর্টকাট কীগুলির parameter-binding উপাদান।

ইনলাইন ইনভেন্টরি প্রতিশব্দ যোগ করুন

পূর্ববর্তী ইনভেন্টরি শর্টকাটগুলিতে parameter-binding উপাদানের android:value বৈশিষ্ট্যগুলি প্রতিটি ইনভেন্টরি উপাদানের জন্য সমার্থক শব্দগুলির একটি অ্যারে সংস্থানকে নির্দেশ করে৷ প্রতিশব্দ একই shortcutId উল্লেখ করতে "রান", "জগ", এবং "স্প্রিন্ট" এর মতো একটি উপাদানের প্রকারের বৈচিত্রগুলি সক্ষম করে। প্রজেক্টের array.xml রিসোর্সে নিম্নলিখিত সমার্থক এন্ট্রি যোগ করুন:

<!-- array.xml -->
<array name="runningSynonyms">
  <item>Run</item>
  <item>Jog</item>
  <item>Jogging</item>
  <item>Sprint</item>
</array>

<array name="walkingSynonyms">
  <item>Walk</item>
  <item>Hike</item>
  <item>Hiking</item>
</array>

<array name="cyclingSynonyms">
  <item>Biking</item>
  <item>Riding</item>
  <item>Pedaling</item>
</array>

ইনকামিং অ্যান্ড্রয়েড উদ্দেশ্য পূরণ করুন

Android intents হল মেসেজিং অবজেক্ট যা Android ব্যবহার করে অন্য অ্যাপ থেকে অ্যাকশনের অনুরোধ করতে। সহকারী ট্রিগার করা ক্ষমতার কনফিগারেশনের বিবরণ থেকে একটি অভিপ্রায় তৈরি করে ব্যবহারকারীদের ভয়েস প্রশ্ন পূরণ করে। START_EXERCISE ক্ষমতার জন্য উদ্দেশ্য পূরণ করার জন্য, আগত অভিপ্রায় এবং BII পরামিতিগুলি পরিচালনা করতে FitMainActivity লক্ষ্য শ্রেণী আপডেট করুন৷

প্রথমে, নিম্নলিখিত কোড দিয়ে Intent.handleIntent ফাংশন প্রতিস্থাপন করুন:

//FitMainActivity.kt

private fun Intent.handleIntent() {
  when (action) {
    // When the BII is matched, Intent.Action_VIEW will be used
    Intent.ACTION_VIEW -> handleIntent(data)
    // Otherwise start the app as you would normally do.
    else -> showDefaultView()
  }
}

এরপরে, নিম্নলিখিত কোড সহ ক্লাসে একটি নতুন handleIntent ফাংশন যুক্ত করুন:

//FitMainActivity.kt

/**
 * Use extras provided by the intent to handle the different BIIs
 */

private fun handleIntent(data: Uri?) {
  // path is normally used to indicate which view should be displayed
  // i.e https://fit-actions.firebaseapp.com/start?exerciseType="Running" -> path = "start"
  var actionHandled = true

  val startExercise = intent?.extras?.getString(START_EXERCISE)
  // Add stopExercise variable here

  if (startExercise != null){
    val type = FitActivity.Type.find(startExercise)
    val arguments = Bundle().apply {
      putSerializable(FitTrackingFragment.PARAM_TYPE, type)
    }
    updateView(FitTrackingFragment::class.java, arguments)
  } // Add conditional for stopExercise
  else{
   // path is not supported or invalid, start normal flow.
   showDefaultView()

   // Unknown or invalid action
   actionHandled = false
  }
  notifyActionSuccess(actionHandled)
}

পূর্ববর্তী Intent.handleIntent ফাংশনে, যখন ACTION_VIEW ট্রিগার করা হয়, তখন অ্যাপ অ্যাকশন ইন্টেন্ট ডেটা handleIntent ফাংশনে পাঠানো হয়। START_EXERCISE অভিপ্রায়ে বান্ডিল করা BII প্যারামিটারগুলি intent?.extras?.getString(START_EXERCISE) মাধ্যমে অ্যাক্সেস করা হয়। বাকী ফাংশনটি FitTrackingFragment আপডেট করে নির্বাচিত startExercise ফিটনেস টাইপ প্রদর্শন করতে।

আপনার অ্যাপ অ্যাকশন পরীক্ষা করুন

অ্যাপ অ্যাকশন ডেভেলপমেন্টের সময়, আপনি একটি টেস্ট ডিভাইসে আপনার অ্যাকশনের পূর্বরূপ দেখতে Google সহকারী প্লাগইন ব্যবহার করেন। আপনি একটি অ্যাকশনের অভিপ্রায় প্যারামিটার মানগুলিকে সামঞ্জস্য করতে প্লাগইনটি ব্যবহার করতে পারেন যাতে কোনও ব্যবহারকারী আপনার অ্যাপের জন্য সহকারী অনুরোধের বিভিন্ন উপায়ে আপনার অ্যাপ কীভাবে পরিচালনা করে তা পরীক্ষা করতে পারেন।

প্লাগইন দিয়ে আপনার অ্যাপ অ্যাকশন পরীক্ষা করতে, এই ধাপগুলি অনুসরণ করুন:

  1. অ্যান্ড্রয়েড স্টুডিওতে রান > রান অ্যাপ বেছে নিয়ে বা উপরের টুলবারে রান আইকনে ক্লিক করে আপনার অ্যাপ চালান।
  2. টুলস > অ্যাপ অ্যাকশন > গুগল অ্যাসিস্ট্যান্ট > অ্যাপ অ্যাকশন টেস্ট টুল- এ যান।
  3. পূর্বরূপ তৈরি করুন ক্লিক করুন। জিজ্ঞাসা করা হলে, অ্যাপ অ্যাকশন নীতি এবং পরিষেবার শর্তাবলী পর্যালোচনা করুন এবং স্বীকার করুন।
  4. actions.intent.START_EXERCISE নির্বাচন করুন৷ START_EXERCISE অন্তর্নির্মিত অভিপ্রায়৷
  5. ব্যায়াম বাক্সে, ডিফল্ট চলমান মান ছেড়ে দিন।
  6. রান অ্যাপ অ্যাকশনে ক্লিক করুন। অ্যাসিস্ট্যান্ট অ্যাপের ব্যায়াম টাইমারের সাথে ডিপ লিঙ্ক করেছে এবং টাইমারটি চলমান ধরনের ওয়ার্কআউট শুরু করেছে তা যাচাই করুন।

আপনি START_EXERCISE BII এর সাথে আপনার প্রথম অ্যাপ অ্যাকশন বাস্তবায়ন করেছেন। অভিনন্দন! এরপরে, আমরা ব্যবহারকারীদের আপনার অ্যাপে চলমান ওয়ার্কআউট বন্ধ করতে সক্ষম করব।

5. স্টপ এক্সারসাইজ BII ক্ষমতা যোগ করুন

actions.intent.STOP_EXERCISE BII ব্যবহারকারীদের "Hey Google, ExampleApp-এ আমার দৌড় বন্ধ করুন।" shortcuts.xml এ একটি দ্বিতীয় capability যোগ করে ফিটনেস অ্যাপে এই BII প্রয়োগ করুন:

<!-- shortcuts.xml -->

<capability android:name="actions.intent.STOP_EXERCISE">
  <intent
    android:action="android.intent.action.VIEW"
    android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
    android:targetClass="com.devrel.android.fitactions.FitMainActivity">
    <!-- Eg. name = "Running" -->
    <parameter
        android:name="exercise.name"
        android:key="stopExercise"/>
  </intent>
</capability>

আপনার অনন্য applicationId দিয়ে PUT_YOUR_APPLICATION_ID_HERE প্রতিস্থাপন করুন।

একটি ইনলাইন ইনভেন্টরি দিয়ে BII প্যারামিটারগুলি পরিচালনা করুন

এই BII START_EXERCISE BII-এর মতো একই exercise.name প্যারামিটারকে সমর্থন করে, ব্যবহারকারীরা কোন সক্রিয় ওয়ার্কআউট শেষ করতে চান তা নির্দিষ্ট করতে দেয়৷ এটি সক্ষম করতে, shortcuts.xml এ ইনভেন্টরি শর্টকাট উপাদানগুলির একটি দ্বিতীয় সেট যুক্ত করুন:

<!-- shortcuts.xml -->

<shortcut
  android:shortcutId="running"
  android:shortcutShortLabel="@string/activity_running">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/runningSynonyms"/>
  </capability-binding>
</shortcut>

<shortcut
  android:shortcutId="walking"
  android:shortcutShortLabel="@string/activity_walking">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/walkingSynonyms"/>
  </capability-binding>
</shortcut>

<shortcut
  android:shortcutId="cycling"
  android:shortcutShortLabel="@string/activity_cycling">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/cyclingSynonyms"/>
  </capability-binding>
</shortcut>

ইনকামিং অ্যান্ড্রয়েড উদ্দেশ্য পূরণ করুন

FitMainActivity ক্লাস আপডেট করে ইনকামিং STOP_EXERCISE Android ইন্টেন্টগুলি পরিচালনা করতে অ্যাপটিকে সক্ষম করুন৷ প্রথমে, STOP_EXERCISE উদ্দেশ্য ডেটা ধরে রাখতে handleIntent ফাংশনে একটি ভেরিয়েবল যোগ করুন:

// FitMainActivity.kt

private fun handleIntent(data: Uri?) {
  val stopExercise = intent?.extras?.getString(STOP_EXERCISE)
  //...
}

এর পরে, STOP_EXERCISE ইন্টেন্টগুলি পরিচালনা করতে handleIntent ফাংশনের শর্তযুক্ত যুক্তি আপডেট করুন:

// FitMainActivity.kt

private fun handleIntent(data: Uri?) {
  //...
  if (startExercise != null){
    val type = FitActivity.Type.find(startExercise)
    val arguments = Bundle().apply {
      putSerializable(FitTrackingFragment.PARAM_TYPE, type)
    }
    updateView(FitTrackingFragment::class.java, arguments)
  } // Add conditional for stopExercise
  <strong>
  } else if(stopExercise != null){
    // Stop the tracking service if any and return to home screen.
    stopService(Intent(this, FitTrackingService::class.java))
    updateView(FitStatsFragment::class.java)
  }
  </strong>
  //...
}

পূর্ববর্তী কোডে, আপনি ইনকামিং অ্যান্ড্রয়েড অভিপ্রায়ে STOP_EXERCISE BII চেক করতে handleIntent ফাংশন আপডেট করেছেন। যদি পাওয়া যায়, ফাংশনটি সক্রিয় টাইমার বন্ধ করে দেয় এবং ব্যবহারকারীকে হোম স্ক্রিনে ফিরিয়ে দেয়।

আপনার অ্যাপ অ্যাকশন পরীক্ষা করুন

এই পদক্ষেপগুলি অনুসরণ করে Google সহকারী প্লাগইন ব্যবহার করে আপনার অ্যাপ অ্যাকশন পরীক্ষা করুন:

  1. অ্যান্ড্রয়েড স্টুডিওতে রান > রান অ্যাপ বেছে নিয়ে বা উপরের টুলবারে রান আইকনে ক্লিক করে আপনার অ্যাপ চালান।
  2. অ্যাপে, একটি নতুন "চলমান" ব্যায়াম শুরু করুন।
  3. অ্যান্ড্রয়েড স্টুডিওতে প্লাগইন খুলুন: টুলস > অ্যাপ অ্যাকশন > গুগল অ্যাসিস্ট্যান্ট > অ্যাপ অ্যাকশন টেস্ট টুলে যান।
  4. পূর্বরূপ তৈরি করুন ক্লিক করুন।
  5. actions.intent.STOP_EXERCISE অন্তর্নির্মিত অভিপ্রায় নির্বাচন করুন৷
  6. ব্যায়াম বাক্সে, ডিফল্ট চলমান মান ছেড়ে দিন।
  7. রান অ্যাপ অ্যাকশনে ক্লিক করুন। যাচাই করুন যে অ্যাসিস্ট্যান্ট ওয়ার্কআউট বন্ধ করে এবং আপনাকে হোম স্ক্রিনে ফিরিয়ে দেয়।

6. পরবর্তী পদক্ষেপ

অভিনন্দন!

আপনি এখন বুঝতে পারছেন কিভাবে অ্যাসিস্ট্যান্ট বিল্ট-ইন ইন্টেন্ট ব্যবহার করে একটি Android অ্যাপকে ভয়েস-সক্ষম করতে হয়। এই কোডল্যাবে, আপনি শিখেছেন:

  • অ্যাসিস্ট্যান্ট ব্যবহার করে কীভাবে ব্যবহারকারীদের নির্দিষ্ট অ্যাপের বৈশিষ্ট্যগুলিতে গভীরভাবে ডুব দিতে দেওয়া যায়।
  • কিভাবে ইনলাইন ইনভেন্টরি ব্যবহার করবেন।
  • গুগল অ্যাসিস্ট্যান্ট প্লাগইন ব্যবহার করে কীভাবে BII পরীক্ষা করবেন।

এরপর কি

এখান থেকে, আপনি আপনার ফিটনেস অ্যাপে আরও পরিমার্জন করার চেষ্টা করতে পারেন। সমাপ্ত প্রকল্পের উল্লেখ করতে, গিটহাবের প্রধান শাখাটি দেখুন।

অ্যাপ অ্যাকশনগুলির সাথে এই অ্যাপটি প্রসারিত করার বিষয়ে আরও শেখার জন্য এখানে কিছু পরামর্শ রয়েছে:

আপনার অ্যাকশন অন Google যাত্রা চালিয়ে যেতে, এই সম্পদগুলি অন্বেষণ করুন:

আমাদের লেটেস্ট ঘোষণার সাথে থাকতে টুইটার @ActionsOnGoogle- এ আমাদের অনুসরণ করুন, এবং আপনি যা তৈরি করেছেন তা শেয়ার করতে #অ্যাপকেশনে টুইট করুন!

প্রতিক্রিয়া সমীক্ষা

অবশেষে, এই কোডল্যাবের সাথে আপনার অভিজ্ঞতা সম্পর্কে প্রতিক্রিয়া জানাতে অনুগ্রহ করে এই সমীক্ষাটি পূরণ করুন।