একটি ইন্টারনেট অফ থিংস অ্যাপ তৈরি করুন

আইওটি অ্যাপ ব্যবহারকারীদের গাড়ির ভেতর থেকে সংযুক্ত ডিভাইসগুলোতে প্রাসঙ্গিক কাজ করার সুযোগ দেয়। এর উদাহরণ হলো নির্দিষ্ট কিছু ডিভাইসের অবস্থা নিয়ন্ত্রণ করা, যেমন—গ্যারেজের দরজা খোলা, বাড়ির লাইটের সুইচ অন-অফ করা বা বাড়ির নিরাপত্তা ব্যবস্থা চালু করা।

আপনার ম্যানিফেস্টে ক্যাটাগরি সাপোর্ট ঘোষণা করুন।

আপনার অ্যাপের CarAppService এর ইন্টেন্ট ফিল্টারে androidx.car.app.category.IOT কার অ্যাপ ক্যাটাগরিটি ডিক্লেয়ার করতে হবে।

<application>
    ...
   <service
       ...
        android:name=".MyCarAppService"
        android:exported="true">
      <intent-filter>
        <action android:name="androidx.car.app.CarAppService" />
        <category android:name="androidx.car.app.category.IOT"/>
      </intent-filter>
    </service>
    ...
<application>

আপনার অ্যাপের কার্যকারিতা বাস্তবায়ন করুন

আপনার অ্যাপটি বাস্তবায়ন করতে, কার অ্যাপ লাইব্রেরি অ্যাপগুলো কীভাবে তৈরি করা হয় সে সম্পর্কে জানতে ‘অ্যান্ড্রয়েড ফর কারস অ্যাপ লাইব্রেরি ব্যবহার’ অংশটি দেখুন। এছাড়াও, আইওটি অ্যাপের জন্য কার অ্যাপ কোয়ালিটি গাইডলাইনস-এর সাথে নিজেকে পরিচিত করে নিন, কারণ আপনার অ্যাপটি এই নির্দেশিকাগুলোর ভিত্তিতে পর্যালোচনা করা হবে।

আইওটি অ্যাপের ক্ষেত্রে, ডিভাইসের তালিকা প্রদর্শন করতে এবং ব্যবহারকারীকে সেগুলোর সাথে ইন্টারঅ্যাক্ট করার সুযোগ দিতে GridTemplate একটি চমৎকার পছন্দ, যেমনটি নিম্নলিখিত নমুনায় দেখানো হয়েছে:

val listBuilder = ItemList.Builder()
val headerBuilder = Header.Builder()
val garageIcon = IconCompat.createWithResource(
    carContext,
    R.drawable.ic_garage
)

listBuilder.addItem(
    GridItem.Builder()
        .setTitle("Garage door")
        .setImage(
            CarIcon.Builder(garageIcon).build(),
            GridItem.IMAGE_TYPE_ICON
        )
        .setOnClickListener {
            // Handle user interactions
        }
        .build()
)

listBuilder.addItem(
    GridItem.Builder()
        .setTitle("Garage lights")
        // Show a loading indicator until the status of the device is known
        // (call invalidate() when the status is known to refresh the screen)
        .setLoading(true)
        .build()
)

return GridTemplate.Builder()
    .setHeader(
        headerBuilder.setTitle("Devices")
            .setStartHeaderAction(Action.APP_ICON).build()
    )
    .setSingleList(listBuilder.build())
    .build()