دستگاه پوشیدنی معمولاً دارای چندین دکمه فیزیکی است که به آنها ساقهها نیز گفته میشود. دستگاههای Wear OS همیشه حداقل یک دکمه دارند: دکمه روشن/خاموش. علاوهبراین، ممکن است صفر یا چند دکمه چندمنظوره وجود داشته باشد. برخیاز دستگاهها دکمه کناری چرخان فیزیکی نیز دارند.
در برنامهتان میتوانید دکمههای چندمنظوره را به کنشهایی اختصاص دهید که وقتی برنامه در پیشزمینه است انجام شوند. برای مثال، برنامه تناسب اندام ممکن است تمرین را بااستفاده از دکمههای چندمنظوره شروع یا موقتاً متوقف کند:
برای موارد استفاده مناسب و ملاحظات طراحی، به اصول طراحی Wear OS مراجعه کنید.
این سند نحوه بازیابی اطلاعات درباره دکمههای چندمنظوره دردسترس در دستگاه و نحوه پردازش فشار دکمهها را شرح میدهد.
فراداده دکمه
برای دریافت اطلاعات بیشتر درباره دکمههای دستگاه، از API تعریفشده در کتابخانه
Wear Input AndroidX
استفاده کنید. وابستگی زیر را در فایل build.gradle واحد برنامه خود اضافه کنید:
dependencies {
implementation "androidx.wear:wear-input:1.2.0"
}
تعداد دکمهها
تعیین کنید چند دکمه در دستگاه دردسترس است، از روش
WearableButtons.getButtonCount()
استفاده کنید. این روش شامل دکمه روشن/خاموش میشود، بنابراین اگر روش مقدار <0x0A>بزرگتر از یک برگرداند، دکمههای چندمنظوره برای استفاده دردسترس است. برای دریافت
تعداد دقیق دکمههای چندمنظوره قابلتخصیص، یک دکمه از
تعداد کل کم کنید، زیرا دکمه اول همیشه دکمه روشن/خاموش است.
کدهای کلید برای فشار دادن دکمه
هر دکمه به یک ثابت int از کلاس
KeyEvent
اختصاص داده میشود، همانطور که در جدول زیر نشان داده شده است:
| دکمه | KeyEvent |
|---|---|
| دکمه چندمنظوره ۱ | KEYCODE_STEM_1 |
| دکمه چندمنظوره ۲ | KEYCODE_STEM_2 |
| دکمه چندمنظوره ۳ | 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» دو روش برای توصیف مکان دکمه ارائه میدهد:
WearableButtons.getButtonLabel()رشته بومیسازیشدهای را برمیگرداند که جایگاه عمومی دکمه را در دستگاه توصیف میکند.WearableButtons.getButtonIcon()نمادی را برمیگرداند که نشاندهنده مکان کلی دکمه در دستگاه است.
اگر این میاناهای برنامهسازی کاربردی با نیازهای برنامه شما مطابقت ندارد، میتوانید از
WearableButtons.getButtonInfo() API نیز برای دریافت مکان دکمه در
صفحه و مدیریت آن به روشی سفارشیتر استفاده کنید. برای اطلاعات بیشتر درباره میاناهای برنامهسازی کاربردی،
به مرجع Wear API مراجعه کنید.