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

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

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

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

הערה: למרות ש-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 של ספריית הלקוח.

מגניב

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.

מגניב

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. כדי לעשות את זה, צריך להשתמש בתהליך Authorization Code Grant with PKCE. אפשר גם להשתמש באחת מהשיטות האחרות שמתוארות במאמר בנושא אימות במכשירים לבישים. לא מומלץ להשתמש בספריית התמיכה של Wearable.

מידע נוסף אפשר למצוא במאמר Wear OS OAuth Sample ב-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

תוספת

to: היעד שזוהה

התוספת היא אופציונלית.

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

android.intent.action.SET_ALARM

תוספות

android.provider.AlarmClock.EXTRA_HOUR: מספר שלם עם השעה של השעון המעורר

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

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

הגדר טיימר 设置一个三分钟的倒计时 פעולה

android.intent.action.SET_TIMER

תוספות

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

הפעלת שעון עצר התחלת מדידת הזמן פעולה

com.google.android.wearable.action.STOPWATCH

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

vnd.google.fitness.TRACK

סוג MIME

vnd.google.fitness.activity/biking

תוספות

actionStatus: מחרוזת עם הערך ActiveActionStatus כשמתחילים ו-CompletedActionStatus כשמפסיקים

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

vnd.google.fitness.TRACK

סוג MIME

vnd.google.fitness.activity/running

תוספות

actionStatus: מחרוזת עם הערך ActiveActionStatus כשמתחילים, ו-CompletedActionStatus כשמפסיקים

התחלה או הפסקה של אימון 开始锻炼 פעולה

vnd.google.fitness.TRACK

סוג MIME

vnd.google.fitness.activity/other

תוספות

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 Manager. משתמשים בגרסה ל-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 (מותאמת למכשירים בסין)
  • שעון כיס
  • TalkBack
  • תצוגות שעון (גרסאות אנלוגיות ודיגיטליות)
  • שירותי ליבה של Wear

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

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

אם אפליקציה מבקשת ערוץ 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

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

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

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

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