يحتوي الجهاز القابل للارتداء عادةً على عدة أزرار مادية، تُعرَف أيضًا باسم _stems_. نظام Wear OS تحتوي الأجهزة دائمًا على زر واحد على الأقل: زر التشغيل. أكثر من ذلك، صفر أو أكثر قد تكون أزرار متعددة الوظائف موجودة.
يمكنك في تطبيقك تعيين أزرار متعددة الوظائف للإجراءات. على سبيل المثال، أحد تطبيقات اللياقة البدنية بدء تمرين أو إيقافه مؤقتًا باستخدام أزرار متعددة الوظائف:
ملاحظة: يحتفظ Wear OS 3.0 بزرَّين لنظام التشغيل، بينما يعمل Wear OS 2.0 على الاحتفاظ بنموذج واحد فقط. يقلل هذا من عدد الأزرار التي يمكنك تخصيصها الإجراءات بشأنها.
بالنسبة إلى حالات الاستخدام واعتبارات التصميم المناسبة، راجع مبادئ تصميم نظام التشغيل Wear OS
يصف هذا الدليل طريقة استرداد معلومات عن الأزرار المتعدّدة الوظائف المتوفّرة على أحد الأجهزة وكيفية معالجة ضغطات الأزرار.
البيانات الوصفية للزر
للحصول على معلومات إضافية حول الأزرار على أحد الأجهزة، يمكنك استخدام واجهة برمجة التطبيقات المحددة في
مكتبة إدخال Wear AndroidX. إضافة
الاعتمادية التالية في ملف build.gradle
لوحدة تطبيقك:
dependencies { implementation "androidx.wear:wear-input:1.0.0" }
عدد الأزرار
لمعرفة عدد الأزرار المتاحة على الجهاز، استخدِم
WearableButtons.getButtonCount()
. تتضمن هذه الطريقة زر التشغيل،
لذلك إذا أرجعت الطريقة قيمة أكبر من واحد، فستتوفر أزرار متعددة الوظائف
للاستخدام. للحصول على عدد دقيق للأزرار متعددة الوظائف القابلة للتعيين، اطرح
واحد من العدد، لأن الزر الأول هو دائمًا زر التشغيل.
رموز المفاتيح للضغطات على الأزرار
يتم ربط كل زر بالعدد الثابت 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 طريقتين تصفان مكان الزر:
-
تعرض
WearableButtons.getButtonLabel()
سلسلة مترجمة تصف الموضع العام للزر على الجهاز. -
تعرض
WearableButtons.getButtonIcon()
رمزًا يمثّل القيمة العامة. موضع الزر على الجهاز.
ملاحظة: ننصحك بتجنّب استخدام أدوات الوصف النصية. عند وصف الأزرار ووظائفها. يمكنك استخدام المؤشرات المرئية بدلاً من ذلك. ومع ذلك، قد يكون هناك هي بعض الحالات التي يكون فيها وصف الزر أكثر منطقية.
تم تصميم الطرق السابقة للأوصاف البسيطة. إذا لم تكن واجهات برمجة التطبيقات هذه مناسبة لتطبيقك
يمكنك أيضًا استخدام واجهة برمجة تطبيقات WearableButtons.getButtonInfo()
للحصول على
موضع الزرّ على الشاشة والتعامل معه بطريقة أكثر تخصيصًا. لمزيد من المعلومات،
معلومات عن واجهات برمجة التطبيقات، راجع
مرجع Wear API