গাড়ির জন্য অ্যাপ অ্যাকশন

ভয়েস কন্ট্রোল চালকদের স্টিয়ারিং হুইল থেকে হাত বা রাস্তা থেকে চোখ না সরিয়েই বিভিন্ন কাজ সম্পাদন করতে সক্ষম করে। গাড়ির অ্যাপের জন্য অ্যাপ অ্যাকশন-এর মাধ্যমে, চালকরা জেমিনি বা গুগল অ্যাসিস্ট্যান্ট ব্যবহার করে তাদের ইনফোটেইনমেন্ট সিস্টেমের অ্যান্ড্রয়েড অ্যাপগুলো নিয়ন্ত্রণ করতে পারেন, যেমন— “হে গুগল, ExampleApp-এ রাস্তার পার্কিং খুঁজে দাও” বলার মাধ্যমে।

অ্যাপ অ্যাকশনস পয়েন্ট অফ ইন্টারেস্ট (POI) কার অ্যাপের সাথে কাজ করে। এই নির্দেশিকায় আপনার POI অ্যাপে অ্যাপ অ্যাকশনস সংহত করার জন্য নির্দিষ্ট প্রয়োজনীয়তা এবং সীমাবদ্ধতাগুলো আলোচনা করা হয়েছে।

এটি কীভাবে কাজ করে

অ্যাপ অ্যাকশন আপনার অ্যাপের ভেতরের কার্যকারিতাকে জেমিনি বা গুগল অ্যাসিস্ট্যান্ট পর্যন্ত প্রসারিত করে, যার ফলে ব্যবহারকারীরা তাদের কণ্ঠস্বর ব্যবহার করে অ্যাপের বিভিন্ন ফিচার অ্যাক্সেস করতে পারেন। যখন কোনো ব্যবহারকারী একটি অ্যাপ অ্যাকশন চালু করেন, তখন জেমিনি বা গুগল অ্যাসিস্ট্যান্ট আপনার অ্যাপের shortcuts.xml রিসোর্সে ঘোষিত একটি বিল্ট-ইন ইন্টেন্ট ( BII )-এর সাথে কোয়েরিটি মিলিয়ে দেখে এবং অনুরোধ করা স্ক্রিনে আপনার অ্যাপটি চালু করে।

আপনি অ্যান্ড্রয়েড capability এলিমেন্ট ব্যবহার করে আপনার অ্যাপে BII-এর জন্য সমর্থন ঘোষণা করেন। যখন আপনি গুগল প্লে কনসোল ব্যবহার করে আপনার অ্যাপ আপলোড করেন, তখন গুগল আপনার অ্যাপে ঘোষিত ক্যাপাবিলিটিগুলো রেজিস্টার করে এবং ব্যবহারকারীদের জন্য জেমিনি বা গুগল অ্যাসিস্ট্যান্ট থেকে সেগুলো অ্যাক্সেস করার সুযোগ করে দেয়।

গাড়ি সরবরাহ দেখানোর চার্ট।

  1. একজন ব্যবহারকারী জেমিনি বা গুগল অ্যাসিস্ট্যান্ট চালু করে একটি নির্দিষ্ট অ্যাপের জন্য ভয়েস রিকোয়েস্ট করেন।
  2. জেমিনি বা গুগল অ্যাসিস্ট্যান্ট অনুরোধটিকে একটি পূর্ব-প্রশিক্ষিত মডেলের (BII) সাথে মেলায় এবং BII দ্বারা সমর্থিত প্যারামিটারগুলো বের করে নেয়।
  3. এই উদাহরণে, জেমিনি বা গুগল অ্যাসিস্ট্যান্ট কোয়েরিটিকে GET_CHARGING_STATION BII-এর সাথে মেলায়, “SFO” লোকেশন প্যারামিটারটি বের করে এবং লোকেশনটিকে তার ভূ-স্থানাঙ্কে রূপান্তর করে।
  4. এই BII-এর জন্য এর পরিপূরণ সংজ্ঞার মাধ্যমে অ্যাপটি সক্রিয় করা হয়।
  5. অ্যাপটি অর্ডারটি সম্পন্ন করে এবং ড্রাইভারের ইনফোটেইনমেন্ট সিস্টেমে চার্জিং স্টেশনের বিকল্পগুলো প্রদর্শন করে।

সীমাবদ্ধতা

অ্যাপ অ্যাকশন-এর কার ইমপ্লিমেন্টেশনগুলোর নিম্নলিখিত সীমাবদ্ধতা রয়েছে:

প্রয়োজনীয়তা

অ্যাপ অ্যাকশনের জন্য আপনার গাড়ির অ্যাপ প্রস্তুত করতে নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

আপনার উদ্দেশ্য ও পরিতৃপ্তি নির্ধারণ করুন

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

  • আপনার গাড়ির অ্যাপটি কোন কোন ইন্টেন্ট সমর্থন করে?

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

  • আপনার অ্যাপ প্রতিটি ইন্টেন্ট কীভাবে পূরণ করবে?

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

অ্যাপ অ্যাকশনগুলিকে একীভূত করুন

আপনার ফুলফিলমেন্ট কৌশল নির্ধারণ করার পর, আপনার গাড়ির অ্যাপটিকে ভয়েস-সক্ষম করতে এই ধাপগুলো অনুসরণ করুন:

  1. আপনার প্রধান অ্যাক্টিভিটির AndroidManifest.xml ফাইলটি খুলুন এবং অ্যান্ড্রয়েড শর্টকাটের জন্য সমর্থন ঘোষণা করুন। আপনার অ্যাপ যে BII-গুলো সমর্থন করে, তা Gemini বা Google Assistant-কে জানানোর জন্য আপনি capability শর্টকাট এলিমেন্ট ব্যবহার করেন। আরও তথ্যের জন্য, ‘Add capabilities’ দেখুন।

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. এরপর, AndroidManifest.xml এ একটি <intent-filter> এলিমেন্ট যোগ করুন। এটি Gemini বা Google Assistant-কে আপনার অ্যাপের কন্টেন্টের সাথে সংযোগ করার জন্য ডিপ লিঙ্ক ব্যবহার করতে সক্ষম করে।

    • অ্যান্ড্রয়েড অটো ফুলফিলমেন্টের ক্ষেত্রে, <intent-filter> আপনার মোবাইল অ্যাপের মতোই হবে।

    • Android Automotive OS-এর ক্ষেত্রে, আপনার অ্যাপের CarAppService সেশনটি Gemini বা Google Assistant-কে সক্রিয় করে। কোনো সেশনকে আপনার ডিপ লিঙ্ক সক্রিয় করার অনুমতি দিতে, AndroidManifest.xml এর <activity> এলিমেন্টে একটি <intent-filter> উল্লেখ করুন।

    <!-- AndroidManifest.xml -->
    <activity
      ...
      android:name="androidx.car.app.activity.CarAppActivity">
      ...
      <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data
            android:scheme="YOUR_SCHEME"
            android:host="YOUR_HOST" />
      </intent-filter>
    </activity>
    
  3. আপনার অ্যাপের res/xml ডিরেক্টরিতে যদি আগে থেকেই shortcuts.xml ফাইল না থাকে, তাহলে একটি নতুন ফাইল তৈরি করুন। অ্যাপ অ্যাকশনস কীভাবে অ্যান্ড্রয়েড শর্টকাট ব্যবহার করে সে সম্পর্কে জানতে, Create shortcuts.xml দেখুন।

    shortcuts.xml ফাইলে, আপনার নির্বাচিত BII-এর জন্য একটি capability প্রয়োগ করুন। এরপর, অ্যাপ ফুলফিলমেন্ট সংজ্ঞায়িত করতে একটি নেস্টেড <intent> যোগ করুন।

    <!-- shortcuts.xml -->
    <?xml version="1.0" encoding="utf-8"?>
    <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
    
      <capability android:name="actions.intent.GET_PARKING_FACILITY">
        <intent>
          <url-template
          android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}">
    
          <!-- Facility name, e.g. "Googleplex" -->
          <parameter
            android:name="parkingFacility.name"
            android:key="name"/>
          <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" -->
          <parameter
            android:name="parkingFacility.address"
            android:key="address"/>
          <!-- Disambiguate the type of service, e.g. "valet" -->
          <parameter
            android:name="parkingFacility.disambiguatingDescription"
            android:key="disambiguatingDescription"/>
          <!-- Latitude, e.g. "37.3861" -->
          <parameter
            android:name="parkingFacility.geo.latitude"
            android:key="latitude"/>
          <!-- Longitude, e.g. "-122.084" -->
          <parameter
            android:name="parkingFacility.geo.longitude"
            android:key="longitude"/>
        </intent>
      </capability>
    </shortcuts>
    
  4. অবশেষে, আগত অ্যাপ অ্যাকশনগুলো সম্পন্ন করার জন্য আপনার গাড়ির অ্যাপের Session() লজিক আপডেট করুন। নিম্নলিখিত নমুনাগুলোতে Session.onCreateScreen() এবং Session.onNewIntent() এর জন্য ইন্টেন্ট হ্যান্ডলিং দেখানো হয়েছে।

    onCreateScreen()

    কোটলিন

    @Override
    fun onCreateScreen(@NonNull intent: Intent): Screen {
      if (intent.getData() != null) {
          val uri: Uri = intent.getData()
          // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
          // Build your Templates with parsed uri parameters
      ...
     }
    }

    জাভা

    @Override
    public Screen onCreateScreen(@NonNull Intent intent) {
    if (intent.getData() != null) {
      Uri uri = intent.getData();
      // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
      // Build your Templates with parsed uri parameters
    ...
    }
    }

    onNewIntent()

    কোটলিন

    @Override
    fun onNewIntent(@NonNull intent: Intent): Screen {
      if (intent.getData() != null) {
          val uri: Uri = intent.getData()
          // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
          // Build your Templates with parsed uri parameters
          ...
      }
    }

    জাভা

    @Override
    public void onNewIntent(@NonNull Intent intent) {
    if (intent.getData() != null) {
     Uri uri = intent.getData();
     // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
     // Build your Templates with parsed uri parameters
     ...
    }
    }

আপনার অ্যাপের প্রিভিউ দেখুন, পরীক্ষা করুন এবং প্রকাশ করুন।

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