Mem-build aplikasi Internet of Things

Aplikasi IoT memungkinkan pengguna mengambil tindakan yang relevan di perangkat terhubung dari dalam mobil. Contohnya termasuk mengontrol status perangkat tertentu, seperti membuka pintu garasi, mengalihkan tombol lampu rumah, atau mengaktifkan keamanan rumah.

Mendeklarasikan dukungan kategori dalam manifes Anda

Aplikasi Anda harus mendeklarasikan kategori aplikasi mobil androidx.car.app.category.IOT dalam filter intent CarAppService.

<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>

Mengimplementasikan fungsi aplikasi

Untuk mengimplementasikan aplikasi, lihat Menggunakan Library Aplikasi Android untuk Mobil tentang cara mem-build aplikasi Library Aplikasi Mobil. Selain itu, pastikan Anda memahami Pedoman Kualitas Aplikasi Mobil untuk aplikasi IOT, karena aplikasi Anda akan ditinjau berdasarkan pedoman ini.

Untuk aplikasi IOT, GridTemplate adalah pilihan tepat untuk menampilkan daftar perangkat dan memungkinkan pengguna berinteraksi dengannya, seperti yang ditunjukkan dalam contoh berikut:

Kotlin

val listBuilder = ItemList.Builder()

listBuilder.addItem(
    GridItem.Builder()
        .setTitle("Garage door")
        .setImage(...)
        // Handle user interactions
        .setOnClickListener {...}
        .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()
    .setTitle("Devices")
    .setHeaderAction(Action.APP_ICON)
    .setSingleList(listBuilder.build())
    .build()

Java

ItemList.Builder listBuilder = new ItemList.Builder();

listBuilder.addItem(
    new GridItem.Builder()
        .setTitle("Garage door")
        .setImage(...)
        // Handle user interactions
        .setOnClickListener(() -> {...})
        .build()
);

listBuilder.addItem(
    new 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 new GridTemplate.Builder()
    .setTitle("Devices")
    .setHeaderAction(Action.APP_ICON)
    .setSingleList(listBuilder.build())
    .build();