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

למידע נוסף, אפשר לעיין בדוגמה של 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

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

תוספות

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.
  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 ספציפי לאפליקציה בסין, הבקשה תיכשל ללא הודעה. במקום זאת, תופיע תיבת דו-שיח שבה תתבקשו לאשר את הפעולה. אם המשתמש מאשר, הערוץ נפתח. זה קורה בכל פעם, ולא רק בפעם הראשונה שמשתמשים ב-Google Workspace. מתבצעת קריאה ל-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. כדי להתחבר לממשקי API אחרים, צריך להשתמש במכונה GoogleApiClient נפרדת. הממשק הזה כולל קריאות חוזרות כדי לעדכן את האפליקציה על ההצלחה או הכשל בחיבור. אם החיבור נכשל, ב- ConnectionResult יופיע הערך API_UNAVAILABLE. במאמר גישה לממשקי Google API מוסבר איך לטפל בכשלים בחיבור.
  2. משתמשים בשיטה addApiIfAvailable() של GoogleApiClient.Builder כדי להתחבר לממשקי ה-API הנדרשים. אחרי שהקריאה החוזרת (callback) onConnected() מופעלת, משתמשים בשיטה hasConnectedApi() כדי לוודא שכל ממשקי ה-API המבוקשים מחוברים בצורה נכונה.

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

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