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

1. সংক্ষিপ্ত বিবরণ

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

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

তুমি কী তৈরি করবে

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

তুমি কি শিখবে

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

পূর্বশর্ত

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

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

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

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

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

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

একটি ফ্লো ডায়াগ্রাম যা দেখায় যে Google Assistant কীভাবে একটি App Actions ভয়েস কোয়েরি প্রক্রিয়া করে।

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

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

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

ইন্টেন্ট

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

পরিপূর্ণতা

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

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

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

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

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

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

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

  1. Welcome to Android Studio ডায়ালগে, Import project এ ক্লিক করুন।
  2. আপনি যে ফোল্ডারে রেপো ক্লোন করেছেন সেটি খুঁজুন এবং নির্বাচন করুন।

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

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

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

applicationId ক্ষেত্রের "MYUNIQUENAME" এর পরিবর্তে আপনার জন্য অনন্য কিছু লিখুন।

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

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

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

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

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

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

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

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

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

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

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

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

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

সক্ষমতা নির্ধারণ করুন

Assistant নিম্নলিখিত ধাপগুলি অনুসরণ করে ভয়েস কমান্ড ভয়েস প্রক্রিয়া করার জন্য 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 এর জন্য একটি ক্ষমতা ঘোষণা করে।
  • অ্যাসিস্ট্যান্ট অ্যাপটি চালু করার জন্য যে অ্যান্ড্রয়েড intent তৈরি করে তা নির্দিষ্ট করে:
    • targetPackage এবং targetClass বৈশিষ্ট্যগুলি গ্রহণকারী কার্যকলাপ নির্দিষ্ট করে।
    • parameter অ্যাট্রিবিউটটি কার্যকলাপ দ্বারা প্রাপ্ত Bundle অতিরিক্তগুলিতে exercise.name BII প্যারামিটারকে exerciseType এ ম্যাপ করে।

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

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

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

কিছু 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 অ্যাট্রিবিউটগুলি প্রতিটি ইনভেন্টরি এলিমেন্টের জন্য সমার্থক শব্দের একটি অ্যারে রিসোর্সকে নির্দেশ করে। সমার্থক শব্দগুলি "run", "jog", এবং "sprint" এর মতো এলিমেন্টের ধরণের বৈচিত্র্যকে একই 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>

আগত অ্যান্ড্রয়েডের উদ্দেশ্য পূরণ করুন

অ্যান্ড্রয়েড ইন্টেন্ট হল এমন মেসেজিং অবজেক্ট যা অ্যান্ড্রয়েড অন্য অ্যাপ থেকে কোনও অ্যাকশনের অনুরোধ করার জন্য ব্যবহার করে। অ্যাসিস্ট্যান্ট ট্রিগার করা ক্যাপাসিটিতে কনফিগারেশনের বিবরণ থেকে একটি ইন্টেন্ট তৈরি করে ব্যবহারকারীদের ভয়েস কোয়েরি পূরণ করে। 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 ট্রিগার করা হয়, তখন App Action intent ডেটা handleIntent ফাংশনে প্রেরণ করা হয়। START_EXERCISE intent-এ বান্ডিল করা BII প্যারামিটারগুলি intent?.extras?.getString(START_EXERCISE) এর মাধ্যমে অ্যাক্সেস করা হয়। বাকি ফাংশনটি নির্বাচিত startExercise ফিটনেস টাইপ প্রদর্শনের জন্য FitTrackingFragment আপডেট করে।

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

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

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

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

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

৫. স্টপ এক্সারসাইজ 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>

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

একটি ইনলাইন ইনভেন্টরি দিয়ে 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 অ্যান্ড্রয়েড ইন্টেন্ট পরিচালনা করার জন্য অ্যাপটিকে সক্ষম করুন। প্রথমে, 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 ফাংশনটি আপডেট করেছেন। যদি পাওয়া যায়, তাহলে ফাংশনটি সক্রিয় টাইমার বন্ধ করে দেয় এবং ব্যবহারকারীকে হোম স্ক্রিনে ফিরিয়ে আনে।

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

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

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

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

অভিনন্দন!

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

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

এরপর কি?

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

অ্যাপ অ্যাকশনের মাধ্যমে এই অ্যাপটি কীভাবে সম্প্রসারিত করা যায় সে সম্পর্কে আরও জানার জন্য এখানে কিছু পরামর্শ দেওয়া হল:

আপনার অ্যাকশনস অন গুগল যাত্রা চালিয়ে যেতে, এই রিসোর্সগুলি ঘুরে দেখুন:

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

প্রতিক্রিয়া জরিপ

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