יצירה של אפליקציות ל-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:

Groovy

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. אפשר גם להשתמש באחת מהשיטות האחרות שמתוארות במאמר אימות במכשירים לבישים. לא מומלץ להשתמש בספריית התמיכה של 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

Extra

to: היעד שזוהה

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

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

android.intent.action.SET_ALARM

Extras

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

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

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

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

android.intent.action.SET_TIMER

Extras

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

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. בוחרים את התמונה של Wear OS for China כשיוצרים פרופיל AVD.
  4. מפעילים את אמולטור Wear OS for China לצורכי פיתוח.
  5. איור 1. דוגמאות לגרסה הסינית של אמולטור Wear OS.

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

  • מצב רגישות לסביבה
  • אנשי הקשר
  • קלט בכתב יד של Google
  • Google Play Services
  • שירותי בריאות ל-Wear OS
  • זיהוי של מילת הפעלה במכשירי LE
  • פיניין
  • חנות Play (מותאמת למכשירים בסין)
  • Pocketwatch
  • 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 שפועלים ב-China פועלים במצב בדיקת הרשאות, שמציב מגבלות מסוימות על השימוש באפליקציות עם targetApiLevel נמוך מ-23. אלה המגבלות:

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

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

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

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

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

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

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