إنشاء تطبيقات Wear OS في الصين

عند إنشاء تطبيقات Wear OS في الصين، عليك مراعاة الهواتف التي لا تتضمّن خدمات Google Play مثبّتة مسبقًا. تحتوي هذه الصفحة على تغييرات شائعة قد يحتاج المطوّرون إلى إجرائها لتلبية متطلبات السوق الصينية.

استخدام الإصدار الصحيح من "خدمات Google Play"

يتيح الإصدار 10.2.0 من "خدمات Google Play" استخدام Fused Location Provider API و Data Layer API في جميع أنحاء العالم. يجب استخدام هذا الإصدار من "خدمات Google Play" إذا كنت تستخدم واجهات برمجة التطبيقات هذه لضمان توفير الدعم لمجموعة أكبر من أجهزة Wear OS في الصين. في حالات أخرى، يكون هذا التبعية اختياريًا.

ملاحظة: على الرغم من أنّ "خدمات Google Play" تتضمّن واجهات برمجة تطبيقات لتطبيقات Wear OS، يجب أن تواصل تطبيقات Wear OS في الصين استخدام واجهات برمجة التطبيقات ذات الصلة بـ GoogleApiClient. راجِع الوصول إلى Wearable API.

Fused Location Provider API

إذا كنت تستخدم واجهة برمجة التطبيقات Fused Location Provider، أدرِج التبعية التالية في ملف 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" بمرجع إلى الإصدار 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 Support Library.

لمزيد من المعلومات، يُرجى الاطّلاع على نموذج OAuth على Wear OS على GitHub.

الإشعارات التي يمكن تلقّيها

لا تتوفّر الإشعارات المنقولة في الصين. يتم نقل إشعارات الهاتف إلى Wear OS فقط إذا كان جهاز Wear OS متصلاً بالهاتف باستخدام البلوتوث.

توافُق الموقع الجغرافي وإحداثيات الخرائط

استخدِم FusedLocationProvider (موفِّر الموقع المدمج) لرصد موقع المستخدم في الصين، كما تفعل في بقية أنحاء العالم. يضمن ذلك أن يأخذ تطبيقك في الاعتبار أفضل المعلومات بغض النظر عن أجهزة الساعة ومنصة الهاتف التي تم إقران الساعة بها. يؤدي استخدام FLP أيضًا إلى إضافة ميزة تحسين البطارية المضمّنة في منصة Wear OS.

عند دمج FusedLocationProvider مع حِزم تطوير البرامج (SDK) الخاصة بالخرائط التابعة لجهات خارجية، يجب مراعاة توافق الإحداثيات بين مقدّمي الخدمات. تعرض FusedLocationProvider الموقع الجغرافي وفقًا لمعيار WGS84. احرص على تحويل أنظمة الإحداثيات حسب الاقتضاء.

التوافق مع Google Fit

تتوفّر عداد الخطوات المتراكمة و"دقائق الحركة" و"نقاط القلب" في Google Fit في الصين، مع سجلّ يصل إلى سبعة أيام. يمكنك الوصول إلى هذه الصفحة بدون تقديم بيانات اعتماد المستخدم.

التوافق مع الإجراءات الصوتية

توفّر منصة Wear OS العديد من نوايا الصوت المستندة إلى إجراءات المستخدم، مثل _"عرض معدل نبضات القلب"_ أو _"ضبط منبّه"_. يتيح ذلك للمستخدمين تحديد ما يريدون فعله، ويسمح للنظام بتحديد أفضل نشاط يمكن البدء به.

عندما يتحدّث المستخدمون لإجراء إجراء صوتي، يمكن لتطبيقك فلترة الغرض الذي يتم تنشيطه لبدء نشاط. لبدء خدمة في الخلفية، اعرض نشاطًا كإشارة مرئية وابدأ الخدمة في النشاط. احرص على الاتصال بالرقم finish() للتخلص من الإشارة المرئية.

في ما يلي قائمة بطلبات البحث الصوتية المتوافقة مع منصة Wear OS:

الفئة مثال مواصفات Intent
طلب سيارة أجرة 打车去三里屯 الإجراء

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 و86400 (عدد الثواني في 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=融科资讯中心

يمكن أن يستخدم "المساعد الصوتي" أيضًا نوايا Android الشائعة الحالية لتفعيل سلوكيات معيّنة عند الاقتضاء.

التوافق مع المحاكي

يمكنك استخدام صورة محاكي Wear OS المخصّصة للصين لاختبار تطبيقاتك. تتوافق هذه الميزة مع الإصدار 3.0 من Android Studio والإصدارات الأحدث.

لاختبار تطبيقاتك على إصدار المحاكي المخصّص للصين، اتّبِع الخطوات التالية:

  1. ثبِّت "محاكي Android".
  2. نزِّل صور Wear OS في الصين من "مدير حِزم تطوير البرامج" (SDK). استخدِم الإصدار المتوافق مع نظام التشغيل Wear OS 3.5 (المستوى 30 من واجهة برمجة التطبيقات).
  3. اختَر صورة Wear OS في الصين عند إنشاء ملف AVD.
  4. شغِّل محاكي Wear OS في الصين لتطوير التطبيقات.
  5. الشكل 1. أمثلة على الإصدار الصيني من محاكي Wear OS

يتضمّن هذا الإصدار من محاكي Wear OS العديد من التطبيقات المثبَّتة مسبقًا:

  • وضع الصوت المحيط
  • جهات الاتصال
  • ‫Google Handwriting Input
  • خدمات Google Play
  • خدمات الصحة على Wear OS
  • التعرّف على الكلمة المهمة لأجهزة إنفاذ القانون
  • Pinyin
  • متجر Play (المعدَّل للأجهزة في الصين)
  • ساعة جيب
  • Talkback
  • خلفيات شاشة الساعة (الإصداران العادي والرقمي)
  • الخدمات الأساسية لنظام Wear

بدء قناة بلوتوث وشبكة Wi-Fi خاصة بتطبيق معيّن

يرسل Wear OS تلقائيًا طلبات الشبكة. في معظم الحالات، لا يُشترط أن يفتح التطبيق قناة Bluetooth وWi-Fi خاصة به.

إذا طلب تطبيق قناة بلوتوث وشبكة Wi-Fi خاصة بالتطبيق في الصين، سيتعذّر تنفيذ الطلب بدون إشعارك بذلك. بدلاً من ذلك، يظهر مربّع حوار يطلب من المستخدم تأكيد الإجراء. إذا أكّد المستخدم ذلك، سيتم فتح القناة. ويحدث ذلك في كل مرة، وليس عند الاستخدام الأول فقط. يتم استدعاء BluetoothAdapter.enable() أو WifiManager.setEnabled(true).

ملاحظة: لكي يتمكّن تطبيق يستهدف الإصدار 10 من نظام التشغيل Android (المستوى 29 من واجهة برمجة التطبيقات) أو إصدارًا أحدث من استدعاء WifiManager.setEnabled()، يجب أن يكون تطبيقًا تابعًا للنظام أو وحدة تحكّم في سياسة الجهاز (DPC).

وضع مراجعة الأذونات

في الصين، تعمل أجهزة Wear OS في وضع مراجعة الأذونات، ما يفرض بعض القيود على كيفية استخدام التطبيقات التي تحمل رقم تعريف targetApiLevel أقل من 23. راجِع الحدود التالية:

  • على الرغم من منح الأذونات أثناء عملية التثبيت، عندما يتم تشغيل تطبيق بإصدار targetApiLevel أقل من 23 للمرة الأولى، يظهر مربّع حوار يطلب من المستخدم تأكيد الأذونات لهذا التطبيق.
  • لا تستجيب المكوّنات في التطبيق، مثل أدوات استقبال البث والخدمات والأنشطة، للأحداث ذات الصلة قبل استخدام التطبيق للمرة الأولى.

نتيجةً لذلك، ننصحك باستخدام الإصدار targetApiLevel 23 أو الإصدارات الأحدث واتّباع أفضل الممارسات المتعلّقة بأذونات التطبيقات.

استخدام واجهات برمجة التطبيقات الأخرى في "خدمات Google Play"

إذا كان تطبيقك يستخدم واجهات برمجة التطبيقات لخدمات Google Play غير Wearable API، يجب أن يتحقّق تطبيقك مما إذا كانت هذه الواجهات متاحة للاستخدام أثناء وقت التشغيل وأن يستجيب بشكل مناسب. هناك طريقتان للتحقّق من توفّر واجهات برمجة التطبيقات لخدمات Google Play:

  1. استخدِم مثيلاً منفصلاً من GoogleApiClient للربط بواجهات برمجة التطبيقات الأخرى. تحتوي هذه الواجهة على عمليات ردّ اتصال لتنبيه تطبيقك بنجاح عملية الربط أو فشلها. في حال تعذُّر الاتصال، ستظهر ConnectionResult على النحو التالي: API_UNAVAILABLE. لمعرفة كيفية التعامل مع حالات تعذُّر الاتصال، يمكنك الاطّلاع على الوصول إلى Google APIs.
  2. استخدِم طريقة addApiIfAvailable() في GoogleApiClient.Builder للربط بواجهات برمجة التطبيقات المطلوبة. بعد تشغيل معاودة الاتصال onConnected()، استخدِم الطريقة hasConnectedApi() للتأكّد من ربط كل واجهة من واجهات برمجة التطبيقات المطلوبة بشكل صحيح.

توزيع التطبيقات في الصين

للوصول بفعالية إلى مستخدمي Wear OS في الصين، يمكنك التوزيع من خلال متاجر تطبيقات Wear OS التابعة لجهات خارجية، مثل ما يلي: