יצירה של אפליקציות ל-Wear OS לסין

כשיוצרים אפליקציות ל-Wear OS לסין, צריך להביא בחשבון מכשירים שלא מותקנים בהם שירותי Google Play. בדף הזה מפורטים שינויים נפוצים שייתכן שמפתחים יצטרכו ליישם כדי להתכונן לשוק הסיני.

שימוש בגרסה הנכונה של Google Play Services

גרסה 10.2.0 של Google Play Services מספקת תמיכה ברחבי העולם ב- Fused Location Provider API וב- Data Layer API. אם משתמשים בממשקי ה-API האלה, צריך להשתמש בגרסה הזו של Google Play Services כדי להבטיח תמיכה במגוון רחב יותר של מכשירי Wear OS בסין. במקרים אחרים, התלות הזו היא אופציונלית.

הערה: אמנם Google Play Services מכיל ממשקי API לאפליקציות Wear OS, אבל אפליקציות Wear OS בסין צריכות להמשיך להשתמש בממשקי API שקשורים ל-GoogleApiClient. אפשר לעיין במאמר גישה ל-Wearable API.

Fused Location Provider API

אם משתמשים ב-Fused Location Provider API, צריך לכלול את התלות הבאה בקובץ build.gradle של מודול Wear OS:

מגניב

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-location:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-location:10.2.0")
}

Data Layer API

אם האפליקציה שלכם משתמשת ב-Data Layer API, צריך להוסיף את השורה הבאה לקובץ build.gradle של המודול ל-Wear OS. בשורה הזו נדרש שימוש בגרסה 10.2.0 של ספריית הלקוח.

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
    ...
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
    ...
}

מוסיפים את השורה הבאה לקובץ build.gradle של המודול לנייד. מחליפים את התלות ב-Google Play Services בהפניה לגרסה 10.2.0.

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
}

אימות

לפני שמטמיעים אימות, כדאי לבדוק את תרחישי השימוש כדי לראות אם באמת יש צורך באימות. לדוגמה, באפליקציה שמציגה את תחזית מזג האוויר, סביר להניח שאין צורך בהתחברות ולכן גם לא באימות.

אם אתם כן צריכים לבצע אימות, מומלץ להשתמש בספריית AndroidX Oauth. לשם כך, צריך להשתמש בתהליך הקצאת קוד הרשאה באמצעות PKCE. אפשר גם להשתמש באחת מהשיטות האחרות שמתוארות במאמר אימות במכשירים לבישים. לא מומלץ להשתמש בספריית התמיכה בגאדג'טים לבישים.

למידע נוסף, אפשר לעיין בדוגמה של Wear OS OAuth ב-GitHub.

התראות מחוברות

אין תמיכה ב התראות משולבות בסין. התראות מהטלפון מועברות ל-Wear OS רק אם מכשיר Wear OS מחובר לטלפון באמצעות Bluetooth.

תאימות של קואורדינטות מיקום ומיפוי

כדי לזהות את המיקום של המשתמש בסין, כמו בשאר העולם, משתמשים ב- FusedLocationProvider (FLP). כך האפליקציה תוכל להשתמש במידע הטוב ביותר, ללא קשר לחומרה של השעון ולפלטפורמת הטלפון שאליו השעון מותאם. השימוש ב-FLP מוסיף גם אופטימיזציה של הסוללה שמובנית בפלטפורמת Wear OS.

כשמשלבים את FusedLocationProvider עם ערכות SDK של מפות של צד שלישי, צריך להביא בחשבון את תאימות הקואורדינטות בין הספקים. המיקום מדווח על ידי FusedLocationProvider בהתאם לתקן WGS84. חשוב להמיר את מערכות הקואורדינטות בהתאם.

תמיכה ב-Google Fit

ב-Google Fit יש תמיכה במספר הצעדים המצטבר, בדק' הפעילות ובדק' אימון הקרדיו בסין, עם היסטוריה של עד שבעה ימים. אפשר לגשת אליו בלי לספק פרטי כניסה של משתמש.

תמיכה בפעולות קוליות

פלטפורמת Wear OS מספקת כמה כוונות קוליות שמבוססות על פעולות של משתמשים, כמו _'הצגת קצב הלב'_ או _'הגדרת שעון מעורר'_. כך המשתמשים יכולים לומר מה הם רוצים לעשות, והמערכת יכולה להבין איזו פעילות הכי כדאי להתחיל.

כשמשתמשים מדברים על פעולה קולית, האפליקציה יכולה לסנן את הכוונה שמופיעה כדי להתחיל פעילות. כדי להפעיל שירות ברקע, מציגים פעילות כאות ויזואלי ומפעילים את השירות בפעילות. עדיף להתקשר אל finish() כדי להסיר את הסימן החזותי.

זוהי רשימת כוונת הדיבור שנתמכות בפלטפורמת Wear OS:

קטגוריה דוגמה מפרט הכוונה
נסיעה בהזמנה 打车去三里屯 פעולה

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Extra

to: היעד שזוהה

האפשרות הזו היא אופציונלית.

הגדר התראה 设置一个明早七点的闹钟 פעולה

android.intent.action.SET_ALARM

Extras

android.provider.AlarmClock.EXTRA_HOUR: מספר שלם עם השעה של ההתראה

android.provider.AlarmClock.EXTRA_MINUTES: מספר שלם עם הדקה של ההתראה

התוספות האלה הן אופציונליות. אפשר לספק את אחד מהפריטים האלה, את שניהם או לא לספק אף אחד מהם.

הגדר טיימר יצירת ספירה לאחור של שלוש דקות פעולה

android.intent.action.SET_TIMER

תוספות

android.provider.AlarmClock.EXTRA_LENGTH: מספר שלם בטווח של 1 עד 86400 (מספר השניות ב-24 שעות), שמייצג את משך הטיימר

הפעלת שעון עצר 开始计时 פעולה

com.google.android.wearable.action.STOPWATCH

איך מתחילים או מפסיקים רכיבה על אופניים 开始骑车 פעולה

vnd.google.fitness.TRACK

סוג MIME

vnd.google.fitness.activity/biking

Extras

actionStatus: מחרוזת עם הערך ActiveActionStatus בהתחלה ו-CompletedActionStatus בסיום

התחלה או הפסקה של ריצה 开始跑步 פעולה

vnd.google.fitness.TRACK

סוג MIME

vnd.google.fitness.activity/running

Extras

actionStatus: מחרוזת עם הערך ActiveActionStatus בהתחלה ו-CompletedActionStatus בסיום

התחלה או הפסקה של אימון 開始鍛鍊 פעולה

vnd.google.fitness.TRACK

סוג MIME

vnd.google.fitness.activity/other

Extras

actionStatus: מחרוזת עם הערך ActiveActionStatus בהתחלה ו-CompletedActionStatus בסיום

הצגת הדופק 查看心率 פעולה

vnd.google.fitness.VIEW

סוג MIME

vnd.google.fitness.data_type/com.google.heart_rate.bpm

הצגת מספר הצעדים 查看步数 פעולה

vnd.google.fitness.VIEW

סוג MIME

vnd.google.fitness.data_type/com.google.step_count.cumulative

ניווט 导航去三里屯 פעולה

android.intent.action.VIEW

נתונים

geo:latitude,longitude?q=融科资讯中心

Voice Assistant יכולה גם להשתמש בכוונות נפוצות קיימות ב-Android כדי להפעיל התנהגויות מסוימות, במקרים הרלוונטיים.

תמיכה באמולטור

אתם יכולים להשתמש בגרסה הסינית של קובץ האימג' של אמולטור Wear OS כדי לבדוק את האפליקציות שלכם. התכונה הזו נתמכת ב-Android Studio מגרסה 3.0 ואילך.

כדי לבדוק את האפליקציות בגרסה הסינית של הסימולטור:

  1. מתקינים את Android Emulator.
  2. מורידים את התמונות של Wear OS לסין מהמנהל של SDK. משתמשים בגרסה ל-Wear OS 3.5 (רמת API ‏30).
  3. כשיוצרים פרופיל AVD, צריך לבחור את התמונה של Wear OS לסין.
  4. מפעילים את אמולטור Wear OS for China לצורכי פיתוח.
  5. איור 1. דוגמאות לגרסה הסינית של אמולטור Wear OS.

הגרסה הזו של אמולטור Wear OS מגיעה עם כמה אפליקציות מותקנות מראש:

  • מצב רגישות לסביבה
  • אנשי קשר
  • קלט כתב יד של Google
  • Google Play Services
  • שירותי בריאות ל-Wear OS
  • זיהוי מילות הפעלה למכשירי LE
  • פיניין
  • חנות Play (מותאמת למכשירים בסין)
  • Pocketwatch
  • TalkBack
  • תצוגות שעון (גרסאות אנלוגיות ודיגיטליות)
  • שירותי ליבה של Wear

הפעלת ערוץ Wi-Fi ו-Bluetooth ספציפיים לאפליקציה

Wear OS מנתבת באופן אוטומטי בקשות ברשת. ברוב המקרים, אין דרישה שהאפליקציה תפתח ערוץ Wi-Fi ו-Bluetooth ספציפיים לאפליקציה.

אם אפליקציה מבקשת ערוץ Bluetooth ו-Wi-Fi ספציפי לאפליקציה בסין, הבקשה תיכשל ללא הודעה. במקום זאת, תופיע תיבת דו-שיח שבה תתבקשו לאשר את הפעולה. אם המשתמש מאשר, הערוץ נפתח. זה קורה בכל פעם, לא רק בשימוש הראשון. מתבצעת קריאה ל-BluetoothAdapter.enable() או ל-WifiManager.setEnabled(true).

הערה: כדי שאפליקציה שתומכת ב-Android 10 (רמת API 29) ואילך תוכל להפעיל את WifiManager.setEnabled(), היא צריכה להיות אפליקציית מערכת או בקר מדיניות של מכשיר (DPC).

מצב בדיקת ההרשאות

בסין, מכשירי Wear OS שפועלים בסין פועלים במצב בדיקת הרשאות, שמציב מגבלות מסוימות על השימוש באפליקציות עם targetApiLevel נמוך מ-23. אלה המגבלות:

  • ההרשאות מוענקות בזמן ההתקנה, אבל בפעם הראשונה שהאפליקציה עם הערך targetApiLevel נמוך מ-23, תופיע תיבת דו-שיח שבה תתבקשו לאשר את ההרשאות לאפליקציה הזו.
  • רכיבים באפליקציה, כמו שירותים, פעילויות ומקלטי שידור, לא מגיבים לאירועים התואמים לפני שמשתמשים באפליקציה בפעם הראשונה.

לכן מומלץ להשתמש ב-targetApiLevel בגרסה 23 ואילך וליישם את השיטות המומלצות בנושא הרשאות לאפליקציות.

שימוש בממשקי API אחרים של Google Play Services

אם האפליקציה שלכם משתמשת בממשקי API של Google Play Services שאינם Wearable API, האפליקציה צריכה לבדוק אם אפשר להשתמש בממשקי ה-API האלה במהלך זמן הריצה ולהגיב בהתאם. יש שתי דרכים לבדוק את הזמינות של ממשקי ה-API של שירותי Google Play:

  1. כדאי להשתמש במכונה נפרדת של GoogleApiClient כדי להתחבר לממשקי API אחרים. הממשק הזה כולל קריאות חוזרות כדי לעדכן את האפליקציה על ההצלחה או הכשל בחיבור. אם החיבור נכשל, ב- ConnectionResult מוצג API_UNAVAILABLE. במאמר גישה ל-Google APIs מוסבר איך מטפלים בכשלים בחיבור.
  2. משתמשים בשיטה addApiIfAvailable() של GoogleApiClient.Builder כדי להתחבר לממשקי ה-API הנדרשים. אחרי שהקריאה החוזרת (callback) onConnected() מופעלת, משתמשים בשיטה hasConnectedApi() כדי לוודא שכל ממשקי ה-API המבוקשים מחוברים בצורה נכונה.

הפצת אפליקציות בסין

כדי להגיע בצורה יעילה למשתמשים ב-Wear OS בסין, אתם יכולים להפיץ את האפליקציה דרך חנויות של צד שלישי ל-Wear OS, כמו: