เรียกใช้และแก้ไขข้อบกพร่องของชิ้นส่วน

ไทล์ไม่ใช่แอป จึงต้องติดตั้งใช้งานและเปิดตัวโดยใช้กลไกที่แตกต่างกัน เมื่ออุปกรณ์เปิดใช้ตัวเลือกสำหรับนักพัฒนาแอป (โปรแกรมจำลองจะเปิดใช้ฟีเจอร์เหล่านี้โดยค่าเริ่มต้น) ฟีเจอร์เพิ่มเติมที่รองรับการพัฒนาไทล์จะพร้อมให้ใช้งานทั้งใน Android Studio และ adb

ติดตั้งใช้งานการ์ด

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

ในระหว่างการพัฒนาที่ใช้งานอยู่ คุณอาจพบว่าการใช้ฟีเจอร์การกำหนดค่าการเรียกใช้/การแก้ไขข้อบกพร่องของ "ไทล์ Wear OS" ของ Android Studio นั้นง่ายและรวดเร็วกว่า วิธีนี้จะ ติดตั้งใช้งานและเปิดใช้งานไทล์โดยอัตโนมัติ ทำให้คุณโต้ตอบได้ทันที โดยไม่ต้องทำตามขั้นตอนเพิ่มเติมด้วยตนเอง

สร้างการกำหนดค่าโดยอัตโนมัติ

วิธีที่ง่ายที่สุดในการติดตั้งใช้งานและเรียกใช้ไทล์คือการใช้ไอคอน "เรียกใช้บริการ" ใน กัตเตอร์ ซึ่งจะสร้างการกำหนดค่าการเรียกใช้โดยอัตโนมัติหากยังไม่มี ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่าการเรียกใช้/การแก้ไขข้อบกพร่องของ Wear OS

ภาพหน้าจอที่มีลูกศรสีแดงชี้ไปที่ "▷" ในแถบด้านข้าง
คลิก "▷" ในแถบด้านข้าง
ภาพหน้าจอแสดงลูกศรสีแดงที่ชี้ไปที่เมนูแบบเลื่อนลงของการกำหนดค่าการเรียกใช้ และตัวเลือกการกำหนดค่า "TestTileService" ที่มีเส้นขอบสีแดง
ระบบจะสร้าง "การกำหนดค่าการเรียกใช้" โดยอัตโนมัติ

สร้างการกำหนดค่าด้วยตนเอง

หากการกำหนดค่าอัตโนมัติไม่ได้ผล หรือคุณต้องการควบคุมผลลัพธ์มากขึ้น ให้ดูวิธีการต่อไปนี้ ภาพหน้าจอมาจาก Android Studio Meerkat (2024.3.1)

  1. เลือกตัวเลือก "⋮" ("แฮมเบอร์เกอร์") จากแถบชื่อ

    ภาพหน้าจอที่มีลูกศรสีแดงชี้ไปที่ตัวเลือก "⋮" ("แฮมเบอร์เกอร์") จากแถบชื่อ
  2. เลือก "แก้ไข…"

    "แก้ไข…" เป็นตัวเลือกแรกในส่วนการกำหนดค่าของรายการแบบเลื่อนลง
  3. เลือก "+" เพื่อเพิ่มการกำหนดค่าในกล่องโต้ตอบที่ปรากฏขึ้น

    ภาพหน้าจอที่มีลูกศรสีแดงชี้ไปที่ "+"
  4. เลือก "ไทล์ Wear OS" เป็นประเภทการกำหนดค่าใหม่

    ภาพหน้าจอที่มีลูกศรสีแดงชี้ไปที่ตัวเลือกการกำหนดค่า "ไทล์ Wear OS"
  5. ป้อนชื่อการกำหนดค่า แล้วเลือกโมดูลและการ์ดตามความเหมาะสม

    ภาพหน้าจอที่มีลูกศรสีแดง 3 ดอกชี้ไปยังส่วนต่างๆ ของหน้าต่างกล่องโต้ตอบ
  6. แตะ "ตกลง" การกำหนดค่าจะปรากฏในแถบชื่อ แตะปุ่ม "▷" ("เรียกใช้") แล้วระบบจะติดตั้งใช้งานและเปิดใช้งานไทล์

ดูตัวอย่างการ์ดใน Android Studio

ตั้งแต่การอัปเดตฟีเจอร์ใหม่ของ Android Studio Koala เป็นต้นไป คุณจะดูภาพรวมของการ์ดแอป Wear OS ได้ แผงนี้มีประโยชน์อย่างยิ่งหากลักษณะที่ปรากฏของไทล์ เปลี่ยนแปลงตามเงื่อนไข เช่น เนื้อหาที่แตกต่างกันขึ้นอยู่กับ ขนาดการแสดงผลของอุปกรณ์ หรือการแข่งขันกีฬาที่เข้าสู่ช่วงพักครึ่ง

ชื่อกลุ่มในแผงแสดงตัวอย่างจะตรงกับชื่อกลุ่มที่ระบุไว้ใน
    คำอธิบายประกอบตัวอย่าง
แผงแสดงตัวอย่างไทล์ใน Android Studio

เพิ่มทรัพยากร Dependency

รวมทรัพยากร Dependency ต่อไปนี้ในไฟล์ build.gradle.kts หรือ build.gradle ของแอป

dependencies {
    implementation("androidx.wear.tiles:tiles-tooling-preview:1.6.0-alpha02")
    debugImplementation("androidx.wear.tiles:tiles-tooling:1.6.0-alpha02")
    implementation("androidx.wear:wear-tooling-preview:1.0.0")
}

กำหนดค่าตัวอย่างภาพย่อย

หากต้องการดูตัวอย่างลักษณะของไทล์ในจอแสดงผล Wear OS ขนาดต่างๆ ให้เพิ่ม@Previewคำอธิบายประกอบ แล้วส่งพารามิเตอร์ device โปรดทราบว่าคำอธิบายประกอบ @Preview นี้มาจากแพ็กเกจอื่นที่ไม่ใช่แพ็กเกจที่คุณใช้สำหรับตัวอย่างที่ประกอบได้

@Preview(device = WearDevices.SMALL_ROUND)
@Preview(device = WearDevices.LARGE_ROUND)
fun tilePreview(context: Context) = TilePreviewData { request ->
    TilePreviewHelper.singleTimelineEntryTileBuilder(
        buildMyTileLayout(context, request.deviceConfiguration)
    ).build()
}

เพิ่มและลงทะเบียนทรัพยากร

หากไทล์ใช้ทรัพยากร Android คุณจะต้องลงทะเบียนทรัพยากรเหล่านั้นภายในพารามิเตอร์ onTileResourceRequest ของ TilePreviewData ตามที่แสดงในข้อมูลโค้ดต่อไปนี้

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithResources(context: Context) = TilePreviewData(
    onTileResourceRequest = { request ->
        Resources.Builder()
            .setVersion(RESOURCES_VERSION)
            .addIdToImageMapping(
                myImageId,
                getImageById(R.drawable.animated_walk)
            )
            .build()
    },
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout(context, request.deviceConfiguration)
        ).build()
    }
)

แสดงค่าที่เฉพาะเจาะจงจากแหล่งข้อมูลแพลตฟอร์ม

หากไทล์ใช้ข้อมูลแพลตฟอร์ม เช่น อัตราการเต้นของหัวใจ แคลอรี่ ระยะทาง และ จำนวนก้าว ไทล์จะแสดงค่าเริ่มต้นสำหรับข้อมูลเหล่านั้น

หากต้องการแสดงค่าที่เฉพาะเจาะจง ให้ตั้งค่าพารามิเตอร์ platformDataValues เมื่อสร้างออบเจ็กต์ TilePreviewData ดังที่แสดงในข้อมูลโค้ดต่อไปนี้

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithPlatformOverride(context: Context) = TilePreviewData(
    platformDataValues = PlatformDataValues.of(
        PlatformHealthSources.Keys.HEART_RATE_BPM,
        DynamicDataBuilders.DynamicDataValue.fromFloat(160f)
    ),
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayoutDynamic(context, request.deviceConfiguration)
        ).build()
    }
)

จัดการการ์ดโดยใช้ adb

adb สามารถใช้เพื่อติดตั้ง ถอนการติดตั้ง และเปิดใช้งานไทล์โดยอัตโนมัติ ในระหว่างการพัฒนา

ในคำสั่งต่อไปนี้ ComponentName คือสตริงที่ประกอบด้วยชื่อแพ็กเกจ และคลาสภายในแพ็กเกจนั้น เช่น com.example.wear.tiles/com.example.wear.tiles.PreviewTileService

add-tile

เพิ่มไทล์ที่ COMPONENT_NAME ระบุและแสดงผลดัชนี

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation add-tile --ecn component [COMPONENT_NAME]

ตัวอย่างเอาต์พุต

Broadcast completed: result=1, data="Index=[0]"

หากมีไทล์อยู่ในภาพสไลด์อยู่แล้ว ระบบจะนำไทล์นั้นออกและแทรกกลับเข้าไปในตำแหน่งเดิม มิเช่นนั้น ระบบจะแทรกที่ Index[0] นอกจากนี้ หากแคโรเซลมีจำนวนไพล์ครบตามขีดจำกัดแล้ว ระบบจะนำไพล์สุดท้ายออกเพื่อให้มีพื้นที่สำหรับไพล์ใหม่

show-tile

เปิดใช้งานไทล์ที่ดัชนี TILE_INDEX

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SYSUI --es operation show-tile --ei index [TILE_INDEX]

ตัวอย่างเอาต์พุต

Broadcast completed: result=1

remove-tile

นำอินสแตนซ์ไทล์ทั้งหมดในภาพสไลด์ที่เชื่อมโยงกับ COMPONENT_NAME ออก

adb shell am broadcast -a com.google.android.wearable.app.DEBUG_SURFACE --es operation remove-tile --ecn component [COMPONENT_NAME]

ตัวอย่างเอาต์พุต

result=1, data="Tile(s) removed."

ค่าที่แสดงผล

  • result=0: ไม่มี Broadcast Receiver ตอบสนองต่อคำสั่งนี้ ซึ่งส่วนใหญ่เป็นเพราะ Wear OS เวอร์ชันเก่าเกินไป หรือกระบวนการแก้ไขข้อบกพร่องไม่ได้ทำงาน
  • result=1: สำเร็จ
  • result>1: ข้อผิดพลาด