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

ดูกรณีการใช้งานที่เหมาะสมและข้อควรพิจารณาในการออกแบบได้ที่หลักการออกแบบของ Wear OS
เอกสารนี้อธิบายวิธีดึงข้อมูลเกี่ยวกับปุ่ม มัลติฟังก์ชัน ที่พร้อมใช้งานในอุปกรณ์ และวิธีประมวลผลการกดปุ่ม
ข้อมูลเมตาของปุ่ม
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับปุ่มในอุปกรณ์ ให้ใช้ API ที่กำหนดไว้ในไลบรารี Wear Input ของ AndroidX
เพิ่มทรัพยากร Dependency ต่อไปนี้ในไฟล์ build.gradle
ของโมดูลแอป
dependencies {
implementation "androidx.wear:wear-input:1.2.0"
}
จำนวนปุ่ม
พิจารณาว่าอุปกรณ์มีปุ่มกี่ปุ่มโดยใช้เมธอด
WearableButtons.getButtonCount()
วิธีนี้รวมถึงปุ่มเปิด/ปิดด้วย ดังนั้นหากวิธีนี้แสดงค่าที่มากกว่า 1 แสดงว่ามีปุ่มมัลติฟังก์ชันที่พร้อมใช้งาน หากต้องการทราบจำนวนปุ่มมัลติฟังก์ชันที่กำหนดได้ที่แน่นอน ให้ลบ 1 ออกจากจำนวนปุ่ม เนื่องจากปุ่มแรกจะเป็นปุ่มเปิด/ปิดเสมอ
รหัสแป้นสำหรับการกดปุ่ม
ปุ่มแต่ละปุ่มจะแมปกับค่าคงที่ int
จากคลาส
KeyEvent
ดังที่แสดงในตารางต่อไปนี้
ปุ่ม | KeyEvent |
---|---|
ปุ่มมัลติฟังก์ชัน 1 | KEYCODE_STEM_1 |
ปุ่มมัลติฟังก์ชัน 2 | KEYCODE_STEM_2 |
ปุ่มมัลติฟังก์ชัน 3 | KEYCODE_STEM_3 |
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรับจำนวนปุ่มที่พร้อมใช้งาน
val count = WearableButtons.getButtonCount(context) if (count > 1) { Log.d(TAG, "More than one button available") } val buttonInfo = WearableButtons.getButtonInfo( activity, KeyEvent.KEYCODE_STEM_1 ) if (buttonInfo == null) { // KEYCODE_STEM_1 is unavailable Log.d(TAG, "KEYCODE_STEM_1 not available") } else { // KEYCODE_STEM_1 is present on the device Log.d(TAG, "KEYCODE_STEM_1 is present on the device") }
จัดการการกดปุ่ม
มีรหัสปุ่มที่เป็นไปได้หลายรายการที่แอปของคุณสามารถจัดการได้ ดังนี้
KEYCODE_STEM_1
KEYCODE_STEM_2
แอปของคุณจะรับรหัสแป้นเหล่านี้และแปลงเป็น การทำงานที่เฉพาะเจาะจงในแอปได้
หากต้องการจัดการการกดปุ่ม ให้ใช้เมธอด
onKeyDown()
ตัวอย่างเช่น การใช้งานนี้จะตอบสนองต่อการกดปุ่มเพื่อควบคุมการทำงาน ในแอป
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { return if (event?.repeatCount == 0) { when (keyCode) { KeyEvent.KEYCODE_STEM_1 -> { Log.d(TAG, "KEYCODE_STEM_1 pressed") true } KeyEvent.KEYCODE_STEM_2 -> { Log.d(TAG, "KEYCODE_STEM_2 pressed") true } else -> { super.onKeyDown(keyCode, event) } } } else { super.onKeyDown(keyCode, event) } }
กำหนดตำแหน่งปุ่ม
ไลบรารี AndroidX มี 2 วิธีที่อธิบายตำแหน่งของปุ่ม ดังนี้
WearableButtons.getButtonLabel()
จะแสดงสตริงที่แปลเป็นภาษาท้องถิ่นซึ่งอธิบายตำแหน่งทั่วไปของปุ่มใน อุปกรณ์WearableButtons.getButtonIcon()
จะแสดงไอคอนที่แสดงถึงตำแหน่งทั่วไปของปุ่มบน อุปกรณ์
หาก API เหล่านี้ไม่เหมาะกับความต้องการของแอป คุณยังใช้
WearableButtons.getButtonInfo()
API เพื่อรับตำแหน่งของปุ่มบนหน้าจอ
และจัดการในลักษณะที่กำหนดเองมากขึ้นได้ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับ API ได้ที่เอกสารอ้างอิง Wear API