מכשיר לביש בדרך כלל מכיל כמה לחצנים פיזיים, שנקראים גם _stems_. Wear OS מכשירים תמיד כוללים, לפחות לחצן אחד: לחצן ההפעלה. מעבר לזה, אפס או יותר עשויים להיות לחצנים רב-תכליתיים.
באפליקציה שלכם תוכלו להקצות לחצנים רב-תכליתיים לפעולות. למשל, אפליקציית כושר יכול להתחיל או להשהות אימון באמצעות לחצנים רב-תכליתיים:
הערה: Wear OS 3.0 שומרת שני לחצנים למערכת ההפעלה, ואילו מערכת Wear OS 2.0 שומרת רק אפשרות אחת. כך תצטמצם מספר הלחצנים שאפשר להקצות פעולות ל.
לגבי תרחישים לדוגמה ושיקולי עיצוב מתאימים, קראו את עקרונות העיצוב של Wear OS.
במדריך הזה מוסבר איך לאחזר מידע על לחצנים רב-תכליתיים זמינים מכשיר ואיך לעבד לחיצות על לחצנים.
מטא-נתונים של לחצן
כדי לקבל מידע נוסף על הלחצנים במכשיר, צריך להשתמש ב-API שמוגדר ב
קלט Wear ספריית AndroidX. מוסיפים את
התלות הבאה בקובץ 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
|
הקוד לדוגמה הבא מראה איך למצוא את הלחצן הזמין. count:
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()
מחזיר סמל שמייצג את הכלל מיקום הלחצן במכשיר.
הערה: אנחנו ממליצים להימנע משימוש בתיאורי טקסט כשמתארים לחצנים ואת הפונקציות שלהם. במקום זאת, יש להשתמש באינדיקטורים חזותיים. עם זאת, ייתכן שיהיו מקרים שבהם תיאור הלחצן הגיוני יותר.
השיטות הקודמות תוכננו לתיאורים פשוטים. אם ממשקי ה-API האלה לא מתאימים לאפליקציה שלכם
לצרכים שלכם, תוכלו גם להשתמש ב-API של WearableButtons.getButtonInfo()
כדי לקבל
את המיקום של הלחצן במסך ולטפל בו באופן מותאם אישית. לקבלת מידע נוסף
מידע על ממשקי ה-API,
חומר עזר בנושא Wear API.