อุปกรณ์ที่สวมใส่ได้มักมีปุ่มหลายปุ่ม หรือที่เรียกว่า _stems_ Wear OS อุปกรณ์จะมีปุ่มอย่างน้อย 1 ปุ่ม นั่นคือปุ่มเปิด/ปิด นอกเหนือจากนั้น หรือมากกว่า อาจมีปุ่มหลายฟังก์ชัน
คุณกำหนดปุ่มหลายฟังก์ชันให้กับการทำงานในแอปได้ เช่น แอปฟิตเนส อาจเริ่มหรือหยุดการออกกำลังกายชั่วคราวโดยใช้ปุ่มหลายฟังก์ชัน ดังนี้
หมายเหตุ: Wear OS 3.0 สงวนปุ่มไว้ 2 ปุ่มสำหรับระบบปฏิบัติการ Wear OS 2.0 จะสงวนไว้เพียงรายการเดียวเท่านั้น ซึ่งจะลดจำนวนปุ่มที่คุณกำหนดได้ การดำเนินการ
สำหรับกรณีการใช้งานที่เหมาะสมและข้อควรพิจารณาในการออกแบบ โปรดดู หลักการออกแบบของ Wear OS
คู่มือนี้จะอธิบายวิธีเรียกดูข้อมูลเกี่ยวกับปุ่มหลายฟังก์ชันที่พร้อมใช้งานบน อุปกรณ์และวิธีประมวลผลการกดปุ่ม
ข้อมูลเมตาของปุ่ม
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับปุ่มต่างๆ ในอุปกรณ์ ให้ใช้ API ที่ระบุไว้ใน
Wear Input ไลบรารี AndroidX เพิ่ม
ทรัพยากร Dependency ต่อไปนี้ในไฟล์ build.gradle
ของโมดูลแอป
dependencies { implementation "androidx.wear:wear-input:1.0.0" }
จำนวนปุ่ม
หากต้องการดูจำนวนปุ่มที่มีอยู่ในอุปกรณ์ ให้ใช้
WearableButtons.getButtonCount()
วิธีการนี้รวมถึงปุ่มเปิด/ปิด
ดังนั้นถ้าเมธอดแสดงค่ามากกว่า 1 ก็จะมีปุ่มหลายฟังก์ชันพร้อมใช้งาน
สำหรับการใช้งาน หากต้องการจำนวนที่ถูกต้องของปุ่มหลายฟังก์ชันที่กำหนดได้ ให้ลบด้วย
ปุ่มหนึ่งจากการนับ เนื่องจากปุ่มแรกจะเป็นปุ่มเปิด/ปิดเสมอ
รหัสคีย์สำหรับการกดปุ่ม
แต่ละปุ่มจะแมปกับค่าคงที่ int
จาก KeyEvent
ดังที่แสดงในตารางต่อไปนี้
ปุ่ม | เหตุการณ์สําคัญ |
---|---|
ปุ่มหลายฟังก์ชัน 1 | KEYCODE_STEM_1
|
ปุ่มหลายฟังก์ชัน 2 | KEYCODE_STEM_2
|
ปุ่มหลายฟังก์ชัน 3 | KEYCODE_STEM_3
|
โค้ดตัวอย่างต่อไปนี้แสดงวิธีรับปุ่มพร้อมใช้งาน จำนวน:
Kotlin
val count = WearableButtons.getButtonCount(context) if (count > 1) { // There are multifunction buttons available } val buttonInfo = WearableButtons.getButtonInfo(activity, KeyEvent.KEYCODE_STEM_1) if (buttonInfo == null) { // KEYCODE_STEM_1 is unavailable } else { // KEYCODE_STEM_1 is present on the device }
Java
int count = WearableButtons.getButtonCount(context); if (count > 1) { // There are multifunction buttons available } WearableButtons.ButtonInfo buttonInfo = WearableButtons.getButtonInfo(activity, KeyEvent.KEYCODE_STEM_1); if (buttonInfo == null) { // KEYCODE_STEM_1 is unavailable } else { // KEYCODE_STEM_1 is present on the device }
จัดการการกดปุ่ม
คีย์โค้ดปุ่มที่เป็นไปได้ซึ่งแอปของคุณสามารถจัดการได้มีดังนี้
-
KEYCODE_STEM_1
-
KEYCODE_STEM_2
-
KEYCODE_STEM_3
แอปของคุณจะได้รับรหัสคีย์เหล่านี้และแปลงเป็นการกระทำในแอปที่เฉพาะเจาะจงได้
ในการจัดการการกดปุ่ม ให้ใช้
onKeyDown()
เช่น การใช้งานนี้ตอบสนองต่อการกดปุ่มเพื่อควบคุม การดำเนินการในแอป
Kotlin
// Activity override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return if (event.repeatCount == 0) { when (keyCode) { KeyEvent.KEYCODE_STEM_1 -> { // Do stuff true } KeyEvent.KEYCODE_STEM_2 -> { // Do stuff true } KeyEvent.KEYCODE_STEM_3 -> { // Do stuff true } else -> { super.onKeyDown(keyCode, event) } } } else { super.onKeyDown(keyCode, event) } }
Java
@Override // Activity public boolean onKeyDown(int keyCode, KeyEvent event){ if (event.getRepeatCount() == 0) { if (keyCode == KeyEvent.KEYCODE_STEM_1) { // Do stuff return true; } else if (keyCode == KeyEvent.KEYCODE_STEM_2) { // Do stuff return true; } else if (keyCode == KeyEvent.KEYCODE_STEM_3) { // Do stuff return true; } } return super.onKeyDown(keyCode, event); }
กำหนดตำแหน่งปุ่ม
ไลบรารี AndroidX มีวิธีอธิบายตำแหน่งของปุ่ม 2 วิธี ดังนี้
-
WearableButtons.getButtonLabel()
จะแสดงผลสตริงที่แปลแล้วซึ่งอธิบาย ตำแหน่งทั่วไปของปุ่มบนอุปกรณ์ -
WearableButtons.getButtonIcon()
แสดงไอคอนที่แสดงถึงทั่วไป การวางปุ่มบนอุปกรณ์
หมายเหตุ: ขอแนะนำให้หลีกเลี่ยงการใช้ข้อบ่งชี้แบบข้อความ เมื่ออธิบายปุ่มและฟังก์ชัน ใช้สัญญาณบอกสถานะภาพแทน อย่างไรก็ตาม อาจมี ในบางกรณีที่การอธิบายปุ่มจะดูเหมาะสมกว่า
โดยวิธีการก่อนหน้านี้ได้รับการออกแบบมาสำหรับคำอธิบายที่เรียบง่าย หาก API เหล่านี้ไม่เหมาะกับแอปของคุณ
คุณยังใช้ WearableButtons.getButtonInfo()
API เพื่อรับ
ตำแหน่งของปุ่มบนหน้าจอและจัดการด้วยวิธีที่ปรับแต่งได้มากขึ้น สำหรับข้อมูลเพิ่มเติม
เกี่ยวกับ API โปรดดู
เอกสารอ้างอิง Wear API