สร้างแอปอินเทอร์เน็ตของสรรพสิ่ง

แอป IoT ช่วยให้ผู้ใช้ดำเนินการที่เกี่ยวข้องกับอุปกรณ์ที่เชื่อมต่อจากภายในรถยนต์ได้ ตัวอย่างเช่น การควบคุมสถานะของอุปกรณ์บางอย่าง เช่น เปิดประตูโรงรถ พลิกสวิตช์ไฟในบ้าน หรือเปิดใช้ระบบรักษาความปลอดภัยในบ้าน

ประกาศการรองรับหมวดหมู่ในไฟล์ Manifest

แอปของคุณต้องประกาศandroidx.car.app.category.IOT หมวดหมู่แอปในรถยนต์ในตัวกรอง 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>

ใช้ฟังก์ชันการทำงานของแอป

หากต้องการใช้งานแอป โปรดดูการใช้ไลบรารีแอป Android สำหรับรถยนต์เกี่ยวกับวิธีสร้างแอปไลบรารี Car App นอกจากนี้ โปรดทำความคุ้นเคยกับหลักเกณฑ์ด้านคุณภาพของแอปในรถยนต์สำหรับแอป IoT เนื่องจากแอปของคุณจะได้รับการตรวจสอบตามหลักเกณฑ์เหล่านี้

สำหรับแอป IoT 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()