আপনার অ্যাপটি অ্যান্ড্রয়েড অটো অথবা অ্যান্ড্রয়েড অটোমোটিভ অপারেটিং সিস্টেম চালিত যানবাহনে আনুন। উভয় ক্ষেত্রেই কাজ করে এমন একটি অ্যাপ আর্কিটেকচার ব্যবহার করুন যাতে প্রতিটি ব্যবহারকারী আপনার অ্যাপটি উপভোগ করতে পারে।
গাড়ির জন্য অ্যান্ড্রয়েড কী?
গাড়ির জন্য একটি মিডিয়া অ্যাপ ব্যবহারকারীদের তাদের ডিজিটাল জীবনকে তাদের গাড়ির সাথে নির্বিঘ্নে সংযুক্ত করার একটি উপায় প্রদান করতে পারে। ফোনের জন্য একই অ্যাপগুলিকে অটোমোবাইলের জন্য উপলব্ধ করার মাধ্যমে, আপনি একটি উন্নত ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে পারেন। আপনি অ্যান্ড্রয়েড অটো, অথবা অ্যান্ড্রয়েড অটোমোটিভ ওএসের সাথে একীভূত করে এটি অর্জন করতে পারেন।
গাড়ির জন্য অ্যান্ড্রয়েড অ্যাপগুলিকে সর্বোপরি ড্রাইভারের মনোযোগ বিঘ্নিত করা এড়াতে হবে। ভয়েস কমান্ড এবং খুব ব্যবহারিক ভিজ্যুয়াল ডিজাইনের মতো সেরা অনুশীলনগুলি অনুসরণ করে আপনি বিভ্রান্তি কমাতে পারেন। এইভাবে, আপনার মিডিয়া অ্যাপটি কেবল তখনই ড্রাইভারকে সময়োপযোগী তথ্য দেখাতে পারে যখন এটি প্রাসঙ্গিক এবং সাধারণ কাজের জন্য অনুমানযোগ্য প্যাটার্ন ব্যবহার করতে পারে।
অ্যান্ড্রয়েড অটো
যাদের Android ফোনে Android Auto অ্যাপ এবং একটি সামঞ্জস্যপূর্ণ গাড়ি বা আফটারমার্কেট স্টেরিও সিস্টেম আছে, তাদের জন্য Android Auto ড্রাইভার-অপ্টিমাইজড অ্যাপ অভিজ্ঞতা প্রদান করে। তারা তাদের ফোন সংযুক্ত করে সরাসরি তাদের গাড়ির ডিসপ্লেতে আপনার অ্যাপটি ব্যবহার করতে পারেন। Android Auto ড্রাইভারকে ড্রাইভার-অপ্টিমাইজড ইন্টারফেস প্রদর্শনের জন্য যে পরিষেবাগুলি ব্যবহার করে তা তৈরি করে আপনি Android Auto কে আপনার ফোন অ্যাপের সাথে সংযোগ করতে সক্ষম করেন।
অ্যান্ড্রয়েড অটোমোটিভ অপারেটিং সিস্টেম
অ্যান্ড্রয়েড অটোমোটিভ ওএস হল একটি অ্যান্ড্রয়েড-ভিত্তিক ইনফোটেইনমেন্ট সিস্টেম যা যানবাহনের মধ্যেই তৈরি। গাড়ির সিস্টেমটি একটি স্বতন্ত্র অ্যান্ড্রয়েড-চালিত ডিভাইস যা ড্রাইভিংয়ের জন্য অপ্টিমাইজ করা হয়েছে। অ্যান্ড্রয়েড অটোমোটিভ ওএসের মাধ্যমে, ব্যবহারকারীরা তাদের ফোনের পরিবর্তে সরাসরি গাড়িতে আপনার অ্যাপটি ইনস্টল করেন।
সমর্থিত অ্যাপ বিভাগ
মিডিয়া অ্যাপ ব্যবহারকারীদের গাড়িতে সঙ্গীত, রেডিও, অডিওবুক এবং অন্যান্য অডিও সামগ্রী ব্রাউজ করতে এবং চালাতে দেয়। আরও তথ্যের জন্য, গাড়ির জন্য অডিও প্লেব্যাক অ্যাপ তৈরি করুন দেখুন। আরও তথ্য গাড়ির জন্য মিডিয়া অ্যাপ তৈরি করুন -এও পাওয়া যাবে।
মিডিয়া অ্যাপগুলি MediaLibraryService এবং MediaSession ব্যবহার করে তৈরি করা হয়। Android Automotive OS-এ, আপনি Views বা Compose ব্যবহার করে সাইন-ইন এবং সেটিংস স্ক্রিন (পার্ক করা অবস্থায় ব্যবহারের জন্য) তৈরি করতে পারেন।
ভিডিও অ্যাপ ব্যবহারকারীদের গাড়ি পার্ক করার সময় স্ট্রিমিং ভিডিও দেখতে দেয়। এই অ্যাপগুলির মূল উদ্দেশ্য হল স্ট্রিমিং ভিডিও প্রদর্শন করা। এই অ্যাপগুলি ভিউ বা কম্পোজ ব্যবহার করে তৈরি করা হয়। আরও তথ্যের জন্য, অ্যান্ড্রয়েড অটোমোটিভ ওএসের জন্য ভিডিও প্লেব্যাক অ্যাপ তৈরি করুন দেখুন। আরও তথ্য বিল্ড ভিডিও অ্যাপস ফর অ্যান্ড্রয়েড অটোমোটিভ ওএসে পাওয়া যাবে।
গাড়ির জন্য অডিও প্লেব্যাক অ্যাপ তৈরি করুন
এই নির্দেশিকা ধরে নিয়েছে যে আপনার কাছে ইতিমধ্যেই একটি বেসিক মিডিয়া প্লেব্যাক অ্যাপ আছে। যদি না থাকে, তাহলে শুরু করতে, একটি বেসিক মিডিয়া প্লেয়ার অ্যাপ তৈরি করুন -এ যান।
এই নির্দেশিকাটি আপনাকে কী করতে হবে সে সম্পর্কে তথ্য দেয়, যার মধ্যে নির্দিষ্ট নির্দেশিকা সহ আরও সম্পদের লিঙ্ক অন্তর্ভুক্ত রয়েছে।
প্লেব্যাক উপাদান
Media3 প্লেব্যাক ব্যবহারের ক্ষেত্রে বেশ কিছু মূল উপাদান প্রদান করে। যদি আপনি পূর্ববর্তী অ্যান্ড্রয়েড মিডিয়া লাইব্রেরিগুলির সাথে কাজ করে থাকেন তবে এই উপাদানগুলি তৈরি করে এমন ক্লাসগুলি আপনার পরিচিত।
নিম্নলিখিত চিত্রটি দেখায় যে কীভাবে এই উপাদানগুলি একটি সাধারণ অ্যাপে একত্রিত হয়।
আরও তথ্যের জন্য, প্লেব্যাক উপাদানগুলি দেখুন।
একটি MediaLibraryService এবং MediaLibrarySession বাস্তবায়ন করুন
একটি MediaLibraryService আপনার মিডিয়া লাইব্রেরিতে পরিষেবা প্রদান এবং অ্যাক্সেস দেওয়ার জন্য একটি স্ট্যান্ডার্ডাইজড API প্রদান করে। আপনার মিডিয়া অ্যাপে Android Auto বা Android Automotive OS এর জন্য সমর্থন যোগ করার সময় এটি প্রয়োজন, কারণ এই প্ল্যাটফর্মগুলি আপনার মিডিয়া লাইব্রেরির জন্য তাদের নিজস্ব ড্রাইভার-নিরাপদ UI প্রদান করে। MediaLibraryService বাস্তবায়ন এবং ব্যবহার সম্পর্কে আরও তথ্যের জন্য, MediaLibraryService এর সাথে সামগ্রী পরিবেশন করুন দেখুন।
প্লেব্যাক নিয়ন্ত্রণের জন্য, একটি মিডিয়া সেশন ব্যবহার করুন। MediaSession API একটি অডিও বা ভিডিও প্লেয়ারের সাথে ইন্টারঅ্যাক্ট করার একটি সর্বজনীন উপায় প্রদান করে। Jetpack Media3 লাইব্রেরিতে MediaLibrarySession অন্তর্ভুক্ত রয়েছে, যা কন্টেন্ট ব্রাউজিং API যোগ করার জন্য MediaSession প্রসারিত করে।
একটি মিডিয়া সেশনকে একটি প্লেয়ারের সাথে সংযুক্ত করার মাধ্যমে একটি অ্যাপ বাইরে থেকে মিডিয়া প্লেব্যাকের বিজ্ঞাপন দিতে পারে এবং Android Auto, Android Automotive OS, অথবা Google Assistant এর মতো বাহ্যিক উৎস থেকে প্লেব্যাক কমান্ড গ্রহণ করতে পারে। আরও তথ্যের জন্য, MediaSession ব্যবহার করে প্লেব্যাক নিয়ন্ত্রণ এবং বিজ্ঞাপন দিন এবং MediaLibrarySession ব্যবহার করুন দেখুন।
কমপক্ষে, আপনার মিডিয়া সেশনে নিম্নলিখিত প্লেয়ার কমান্ডগুলির জন্য সমর্থন ঘোষণা করা উচিত:
প্লেব্যাক নিয়ন্ত্রণ সক্ষম করুন নির্দেশিকাটি গাড়িতে আপনার প্লেব্যাক নিয়ন্ত্রণগুলি কীভাবে কাস্টমাইজ করতে পারেন তা বর্ণনা করে।
যখন Android Auto বা Android Automotive OS আপনার অ্যাপের সাথে সংযুক্ত হয়, তখন তারা একটি কন্টেন্ট লাইব্রেরি প্রদর্শনের জন্য অনুরোধ করে, যা onGetLibraryRoot() কলব্যাক পদ্ধতিটি ট্রিগার করে। আপনার লাইব্রেরিতে অ্যাক্সেসের অনুমতি দেওয়ার জন্য আপনি দ্রুত একটি রুট মিডিয়া আইটেম ফেরত দিতে পারেন। যখন Android Auto বা Android Automotive OS আপনার কন্টেন্ট লাইব্রেরির আরও গভীর স্তর ব্রাউজ করার চেষ্টা করে তখন onGetChildren() কলব্যাক পদ্ধতিটি কল করা হয়।
এই প্ল্যাটফর্মগুলি আপনার কন্টেন্ট লাইব্রেরি কীভাবে গঠন করা হবে তার উপর অতিরিক্ত সীমা আরোপ করে। আপনার কন্টেন্ট লাইব্রেরি কীভাবে প্রদর্শিত হবে তা কাস্টমাইজ করার বিশদ বিবরণের জন্য, আপনার মিডিয়া ব্রাউজার তৈরি করুন পরিষেবা নির্দেশিকাটি দেখুন।
Android Auto-এর জন্য সমর্থন ঘোষণা করুন
আপনার ফোন অ্যাপটি Android Auto সমর্থন করে তা ঘোষণা করতে নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি ব্যবহার করুন:
<application>
...
<meta-data android:name="com.google.android.gms.car.application"
android:resource="@xml/automotive_app_desc"/>
...
</application>
এই ম্যানিফেস্ট এন্ট্রিটি একটি XML ফাইলকে বোঝায় যা আপনার অ্যাপটি কোন অটোমোটিভ ক্ষমতা সমর্থন করে তা ঘোষণা করে। আপনার একটি মিডিয়া অ্যাপ আছে তা বোঝাতে, আপনার প্রোজেক্টের res/xml/ ডিরেক্টরিতে automotive_app_desc.xml নামে একটি XML ফাইল যোগ করুন। এই ফাইলটিতে নিম্নলিখিত বিষয়বস্তু থাকা উচিত:
<automotiveApp>
<uses name="media"/>
</automotiveApp>
অ্যান্ড্রয়েড অটোমোটিভ ওএসের জন্য সমর্থন ঘোষণা করুন
আপনার অ্যাপের সমস্ত লজিক একটি অটোমোটিভ অ্যাপের সাথে শেয়ার করা যাবে না বলে আপনাকে একটি অটোমোটিভ মডিউল তৈরি করতে হবে। অ্যান্ড্রয়েড অটোমোটিভ ওএসের কিছু উপাদান, যেমন ম্যানিফেস্ট, এর প্ল্যাটফর্ম-নির্দিষ্ট প্রয়োজনীয়তা রয়েছে। এমন একটি মডিউল তৈরি করুন যা এই উপাদানগুলির কোডকে আপনার প্রকল্পের অন্যান্য কোড থেকে আলাদা রাখতে পারে, যেমন আপনার মোবাইল অ্যাপের জন্য ব্যবহৃত কোড।
আপনার প্রকল্পে একটি অটোমোটিভ মডিউল যোগ করতে এই পদক্ষেপগুলি অনুসরণ করুন:
- অ্যান্ড্রয়েড স্টুডিওতে, ফাইল > নতুন > নতুন মডিউল ক্লিক করুন।
- অটোমোটিভ মডিউল নির্বাচন করুন, তারপর পরবর্তী ক্লিক করুন।
- একটি অ্যাপ্লিকেশন/লাইব্রেরির নাম লিখুন। এটি হল সেই নাম যা ব্যবহারকারীরা Android Automotive OS-এ আপনার অ্যাপের জন্য দেখতে পান।
- একটি মডিউলের নাম লিখুন।
- আপনার অ্যাপের সাথে মেলে প্যাকেজের নামটি সামঞ্জস্য করুন।
ন্যূনতম SDK এর জন্য API 28: Android 9.0 (Pie) নির্বাচন করুন, এবং তারপর Next এ ক্লিক করুন।
অ্যান্ড্রয়েড অটোমোটিভ অপারেটিং সিস্টেম সমর্থন করে এমন সমস্ত গাড়ি অ্যান্ড্রয়েড 9 (এপিআই লেভেল 28) বা তার বেশি ভার্সনে চলে, তাই এই মানটি নির্বাচন করা সমস্ত সামঞ্জস্যপূর্ণ গাড়িকে লক্ষ্য করে।
No Activity নির্বাচন করুন, এবং তারপর Finish এ ক্লিক করুন।
অ্যান্ড্রয়েড স্টুডিওতে আপনার মডিউল তৈরি করার পরে, আপনার নতুন অটোমোটিভ মডিউলে AndroidManifest.xml খুলুন:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.media">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme" />
<uses-feature
android:name="android.hardware.type.automotive"
android:required="true" />
</manifest>
application উপাদানটিতে কিছু স্ট্যান্ডার্ড অ্যাপ তথ্যের পাশাপাশি একটি uses-feature উপাদান রয়েছে যা Android Automotive OS এর জন্য সমর্থন ঘোষণা করে। মনে রাখবেন যে ম্যানিফেস্টে কোনও কার্যকলাপ ঘোষণা করা হয়নি।
যদি আপনি সেটিংস বা সাইন-ইন কার্যকলাপ বাস্তবায়ন করেন, তাহলে এখানে সেগুলি যোগ করুন। এই কার্যকলাপগুলি স্পষ্ট উদ্দেশ্য ব্যবহার করে সিস্টেম দ্বারা ট্রিগার করা হয় এবং আপনার Android Automotive OS অ্যাপের জন্য ম্যানিফেস্টে আপনি কেবলমাত্র এই কার্যকলাপগুলিই ঘোষণা করেন।
যেকোনো সেটিংস বা সাইন-ইন কার্যকলাপ যোগ করার পরে, application উপাদানে android:appCategory="audio" অ্যাট্রিবিউট সেট করে এবং নিম্নলিখিত uses-feature উপাদানগুলি যোগ করে আপনার ম্যানিফেস্ট ফাইলটি সম্পূর্ণ করুন:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.media"> <application android:allowBackup="true" android:appCategory="audio" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" /> <uses-feature android:name="android.hardware.type.automotive" android:required="true" /> <uses-feature android:name="android.hardware.wifi" android:required="false" /> <uses-feature android:name="android.hardware.screen.portrait" android:required="false" /> <uses-feature android:name="android.hardware.screen.landscape" android:required="false" /> </manifest>
স্পষ্টভাবে এই বৈশিষ্ট্যগুলিকে required="false" এ সেট করলে নিশ্চিত হয় যে আপনার অ্যাপটি অটোমোটিভ ওএস ডিভাইসে উপলব্ধ হার্ডওয়্যার বৈশিষ্ট্যগুলির সাথে বিরোধিতা করে না।
আপনার অ্যাপটি Android Automotive OS সমর্থন করে তা ঘোষণা করতে নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি ব্যবহার করুন:
<application>
...
<meta-data android:name="com.android.automotive"
android:resource="@xml/automotive_app_desc"/>
...
</application>
এই ম্যানিফেস্ট এন্ট্রিটি এমন একটি XML ফাইলকে বোঝায় যা আপনার অ্যাপের দ্বারা সমর্থিত অটোমোটিভ ক্ষমতা ঘোষণা করে।
আপনার একটি মিডিয়া অ্যাপ আছে তা বোঝাতে, আপনার প্রোজেক্টের res/xml/ ডিরেক্টরিতে automotive_app_desc.xml নামের একটি XML ফাইল যোগ করুন। এই ফাইলে নিম্নলিখিত বিষয়বস্তু অন্তর্ভুক্ত করুন:
<automotiveApp>
<uses name="media"/>
</automotiveApp>
ইন্টেন্ট ফিল্টার
আপনার মিডিয়া অ্যাপে কার্যকলাপ ট্রিগার করার জন্য Android Automotive OS স্পষ্ট উদ্দেশ্য ব্যবহার করে। ম্যানিফেস্ট ফাইলে CATEGORY_LAUNCHER বা ACTION_MAIN অভিপ্রায় ফিল্টার আছে এমন কোনও কার্যকলাপ অন্তর্ভুক্ত করবেন না।
নিচের উদাহরণের মতো কার্যকলাপগুলি সাধারণত একটি ফোন বা অন্য কোনও মোবাইল ডিভাইসকে লক্ষ্য করে। এই কার্যকলাপগুলি ফোন অ্যাপ তৈরি করে এমন মডিউলে ঘোষণা করুন, আপনার Android Automotive OS অ্যাপ তৈরি করে এমন মডিউলে নয়।
<activity android:name=".MyActivity">
<intent-filter>
<!-- You can't use either of these intents for Android Automotive OS -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--
In their place, you can include other intent filters for any activities
that your app needs for Android Automotive OS, such as settings or
sign-in activities.
-->
</intent-filter>
</activity>
আরও পদক্ষেপ
এখন যেহেতু আপনার কাছে Android Auto এবং Android Automotive OS এর জন্য একটি অ্যাপ আছে, তাই গাড়ি চালানোর সময় আপনার অ্যাপটি আরও নিরাপদে ব্যবহার করার জন্য আপনি অতিরিক্ত পদক্ষেপ নিতে চাইতে পারেন। নিরাপদ এবং সুবিধাজনক ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করতে আরও সুপারিশের জন্য, ভয়েস অ্যাকশন , ডিস্ট্রাকশন সুরক্ষা এবং ত্রুটি পরিচালনার জন্য প্রযুক্তিগত নির্দেশিকাগুলি দেখুন।
অ্যান্ড্রয়েড অটোমোটিভ অপারেটিং সিস্টেমের জন্য ভিডিও প্লেব্যাক অ্যাপ তৈরি করুন
যেহেতু ভিডিও অ্যাপগুলিকে গাড়ির মিডিয়া অ্যাপ থেকে আলাদাভাবে শ্রেণীবদ্ধ করা হয়, তাই আপনাকে ভিডিও অ্যাপগুলির জন্য কিছু নির্দিষ্ট প্রয়োজনীয়তা সম্পর্কে সচেতন থাকতে হবে, যেমনটি "গাড়ির জন্য পার্ক করা অ্যাপ তৈরি করুন" এবং "অ্যান্ড্রয়েড অটোমোটিভ অপারেটিং সিস্টেমের জন্য ভিডিও অ্যাপ তৈরি করুন" বিভাগে বর্ণিত হয়েছে। আপনাকে নিম্নলিখিত নির্দেশাবলী ব্যবহার করতে হবে।
আপনার অ্যাপটিকে ভিডিও অ্যাপ হিসেবে চিহ্নিত করুন
আপনার অ্যাপটি ভিডিও সমর্থন করে তা বোঝাতে, আপনার প্রোজেক্টের res/xml/ ডিরেক্টরিতে automotive_app_desc.xml নামের একটি XML ফাইল যোগ করুন। এই ফাইলে, নিম্নলিখিত বিষয়বস্তু অন্তর্ভুক্ত করুন:
<automotiveApp>
<uses name="video"/>
</automotiveApp>
তারপর, আপনার ম্যানিফেস্টের application উপাদানের মধ্যে, XML ফাইলটি উল্লেখ করে নিম্নলিখিত meta-data উপাদানটি যোগ করুন:
<meta-data android:name="com.android.automotive"
android:resource="@xml/automotive_app_desc"/>