একটি AppCard তৈরি করুন

একটি AppCard তৈরি করতে, একটি অ্যাপকে অবশ্যই ম্যানিফেস্টে একটি প্রদানকারী তৈরি করতে হবে যা AppCardContentProvider প্রসারিত করে। AppCardContentProvider AppCards তৈরির সুবিধার্থে অন্তর্নিহিত বিশদগুলিকে বিমূর্ত করে।

ম্যানিফেস্ট ঘোষণা

একটি AppCard তৈরি করতে, একটি অ্যাপকে অবশ্যই AppCardContentProvider প্রসারিত করতে ম্যানিফেস্টে একটি প্রদানকারী তৈরি করতে হবে।

<provider android:name=".SimpleAppCardContentProvider"
            android:authorities="com.example.appcard.sample.media"
            android:permission="@string/host_permission"
            android:exported="true"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.android.car.appcard.APP_CARD_PROVIDER" />
            </intent-filter>
</provider>

প্রতি প্যাকেজ এবং এই বৈশিষ্ট্যগুলির সাথে শুধুমাত্র একটি প্রদানকারীকে সংজ্ঞায়িত করা যেতে পারে :

  • android:exported="true"
  • android:enabled="true"
  • android:permission="@string/host_permission"

    বা,

    • android:readPermission="@string/host_permission"

      এবং,

      android:writePermission="@string/host_permission"

  • @string/host_permission অ্যাপকার্ড লাইব্রেরিতে বিদ্যমান এবং সিস্টেমের অ্যান্ড্রয়েড API সংস্করণের উপর নির্ভর করে একটি অনুমতি নির্ধারণ করে।

    স্ট্রিং রিসোর্স ব্যবহার করা শুধুমাত্র গ্র্যাডল দিয়ে তৈরি করার সময় কাজ করে। Soong ব্যবহার করার সময়, উপযুক্ত রিসোর্স কোয়ালিফায়ার অনুযায়ী স্ট্রিং রিসোর্স মান সহ স্পষ্ট স্ট্রিং নির্দিষ্ট করুন।

  • ( ডিফল্ট ) android:grantUriPermissions="false"

  • ( ডিফল্ট ) android:forceUriPermissions="false"

    অপ্রত্যাশিত ফলাফল এড়াতে, প্রদানকারীকে শুধুমাত্র android:authorities এ একটি একক কর্তৃপক্ষকে সংজ্ঞায়িত করতে হবে।

  • একটি অ্যাকশন-ভিত্তিক অভিপ্রায় ফিল্টার ঘোষণা করুন, com.android.car.appcard.APP_CARD_PROVIDER

AppCardContentProvider প্রসারিত করুন

এই বিভাগে ওভাররাইড এবং সুরক্ষিত চূড়ান্ত পদ্ধতি বর্ণনা করে।

ওভাররাইড পদ্ধতি

val authority: String
android:authorities manifest সম্পত্তিতে সংজ্ঞায়িত অথরিটি ফেরত দিতে এই পদ্ধতিটি ব্যবহার করুন।

fun onCreate(): Boolean
এই পদ্ধতিটিকে অবশ্যই super.onCreate() কল করতে হবে। কার্যকারিতা সেট আপ করতে এই পদ্ধতিটি ব্যবহার করুন যা একটি AppCard অনুরোধ করা হলে সেট আপ করা হলে সম্ভবত বিলম্ব হতে পারে।

val appCardIds: List
সমর্থিত অ্যাপকার্ড আইডিগুলির তালিকা ফেরত দিতে এই পদ্ধতিটি ব্যবহার করুন। আমরা প্রতিটি আইডি ভার্বোজ করার পরামর্শ দিই কারণ এই স্ট্রিংটি ত্রুটিগুলি লগ করতে ব্যবহার করা হয়৷

fun onAppCardAdded(String, AppCardContext): AppCard
এই পদ্ধতিটি বলা হয় যখন একটি AppCard প্রথমবার দেখানো হয় এবং AppCard এবং AppCardContext এর সাথে সম্পর্কিত আইডি প্রদান করে যা অ্যাপকার্ডটি কীভাবে প্রদর্শিত হয় তার ইঙ্গিত দেয়।

একটি প্রদানকারী হিসাবে সমর্থিত AppCards দ্বারা প্রয়োজনীয় যেকোন কার্যকারিতা সেট আপ করতে এই পদ্ধতিটি ব্যবহার করুন৷ একবার এই ফাংশনটি কল করা হলে, প্রদত্ত আইডির সাথে সংশ্লিষ্ট অ্যাপকার্ডটি সক্রিয় বলে বিবেচিত হয়৷

fun onAppCardRemoved(String)
এই পদ্ধতিটি বলা হয় যখন অ্যাপকার্ডের কোনো অবশিষ্ট উদাহরণ ব্যবহারকারীকে দেখানো হয় না এবং সমস্ত পরিষ্কার করা হয়। যখন এই ফাংশনটি কল করা হয়, প্রদত্ত আইডির সাথে সম্পর্কিত AppCard নিষ্ক্রিয় বলে বিবেচিত হয়৷

fun onAppCardContextChanged(String, AppCardContext)
এই পদ্ধতিটি বলা হয় যখন সিস্টেম আপডেট করতে চায় কিভাবে একটি AppCard প্রদর্শিত হয় এবং একটি আপডেট করা AppCardContext পাঠায়।

সুরক্ষিত চূড়ান্ত পদ্ধতি

fun sendAppCardUpdate(AppCard)
একটি সক্রিয় AppCard-এর জন্য একটি আপডেট সারিবদ্ধ করতে এই পদ্ধতিটি চালু করুন।

fun sendAppCardComponentUpdate(String, Component)
একটি সক্রিয় AppCard-এ একটি উপাদানের জন্য একটি আপডেট সারিবদ্ধ করতে এই পদ্ধতিটি ব্যবহার করুন। যদি প্রদত্ত উপাদানটি EnforceFastUpdateRate দিয়ে ট্যাগ করা হয়, তাহলে আপডেটটি অবিলম্বে পাঠানো হয়।

FAQ

নমুনা বাস্তবায়ন কোথায়?