تطبيقات Wear OS المستقلة وغير المستقلة

ننصح بأن تعمل تطبيقات Wear OS بشكل مستقل عن الهاتف لكي يتمكّن المستخدمون من إكمال المهام على الساعة بدون استخدام هاتف Android أو iOS. إذا كان تطبيق الساعة الذكية يتطلّب التفاعل مع الهاتف، عليك تصنيف تطبيق Wear OS على أنّه غير مستقلّ واتّخاذ الخطوات اللازمة لضمان إتاحة تطبيق الهاتف لدى المستخدم.

التخطيط لتطبيقك

يمكنك استخدام مجموعة حزمات تطبيق Android لإنشاء ملفات APK محسَّنة تلقائيًا حسب إعدادات جهاز كل مستخدم ضمن بطاقة بيانات التطبيق نفسها. يتيح هذا الإجراء للمستخدمين تنزيل الرمز والموارد التي يحتاجونها لتشغيل تطبيقك فقط.

للحصول على معلومات حول إعداد تطبيقك للتوزيع من خلال "متجر Google Play"، يمكنك الاطّلاع على تقديم تطبيقات Wear OS وتوزيعها ودليل بدء استخدام مجموعات حزمات تطبيق Android.

بشكل عام، أدنى مستوى لواجهة برمجة التطبيقات في تطبيق Wear OS هو المستوى 25 من واجهة برمجة التطبيقات (Wear OS 2.0). يجب أن يكون مستوى واجهة برمجة التطبيقات المستهدَف هو المستوى 28 أو أعلى لواجهة برمجة التطبيقات. للحصول على مزيد من المعلومات، يُرجى الاطّلاع على استيفاء متطلبات مستوى واجهة برمجة التطبيقات المستهدف في Google Play. اضبط targetSdkVersion على المستوى 30 لواجهة برمجة التطبيقات (Wear OS 3) للمساعدة في ضمان عمل تطبيقك بشكل جيد على أحدث إصدار من النظام الأساسي.

للحصول على معلومات حول طلبات الشبكة والوصول إلى الشبكة ذات معدّل نقل البيانات العالي، يمكنك الاطّلاع على الوصول إلى الشبكة والمزامنة على نظام التشغيل Wear OS.

تحديد تطبيق كتطبيق Wear OS

يجب تحديد علامة <uses-feature> في ملف بيان Android لتطبيقك. للإشارة إلى أنّه تطبيق ساعة ذكية، أضِف إدخالاً على النحو التالي:

  <manifest>
  ...
  <uses-feature android:name="android.hardware.type.watch" />
  ...
  </manifest>
  

تحديد تطبيق على أنّه تطبيق مستقل أو غير مستقل

يُعتبر تطبيق الساعة الذكية إما مستقلاً أو غير مستقل:

  • مستقل: تطبيق مستقل تمامًا لا يتطلّب تثبيت تطبيق على الهاتف للاستفادة من الميزات الأساسية، بما في ذلك المصادقة. لا يوفّر تطبيق الهاتف سوى الميزات الاختيارية فقط، إذا كان ذلك متاحًا.
  • غير مستقل: هو تطبيق تابع يتطلّب تطبيقًا على الهاتف أو جهاز آخر للحصول على الميزات الأساسية، بما في ذلك المصادقة.

في تطبيق Wear OS، عليك ضبط قيمة العنصر meta-data com.google.android.wearable.standalone في ملف بيان Android لتوضيح ما إذا كان تطبيقك مستقلاً أم غير مستقل.

إذا كان تطبيق الساعة الذكية مستقلاً تمامًا ومستقلاً، يمكنك إعلام "متجر Google Play" بذلك من خلال ضبط القيمة com.google.android.wearable.standalone على true:

<application>
...
  <meta-data
    android:name="com.google.android.wearable.standalone"
    android:value="true" />
...
</application>

إذا لم يكن تطبيق الساعة الذكية مستقلاً ويعتمِد على تطبيق آخر لتوفير الميزات الأساسية، اضبط القيمة com.google.android.wearable.standalone على false. يعني ذلك أنّ تطبيق الساعة الذكية يتطلّب جهازًا آخر، ولكنّه لا يؤثّر في عملية الترويج لتطبيقك على "متجر Google Play".

ملاحظة: حتى إذا كانت قيمة com.google.android.wearable.standalone هي false، يمكن تثبيت تطبيق الساعة الذكية قبل تثبيت تطبيق الهاتف. لذلك، إذا رصد تطبيق الساعة الذكية أنّ الهاتف المصاحب لا يتضمّن تطبيق الهاتف اللازم، كما هو موضّح في هذه الصفحة، اطلب من المستخدم تثبيت تطبيق الهاتف.

الرمز المشترك ومساحة تخزين البيانات

يمكن مشاركة الرمز بين تطبيق Wear OS وتطبيق هاتف. على سبيل المثال، يمكن أن يكون الرمز الشائع للشبكة في مكتبة مشتركة.

ويمكنك اختياريًا العثور على الرمز الخاص بعامل الشكل في وحدة منفصلة.

يمكنك استخدام واجهات برمجة التطبيقات العادية لتخزين بيانات Android لتخزين البيانات على الجهاز، كما تفعل على الهاتف. على سبيل المثال، يمكنك استخدام واجهات برمجة تطبيقات SharedPreferences أو مكتبة مواصلة الاحتفاظ بالبيانات في الغرفة.

رصد تطبيقك على جهاز آخر

يمكن لكل من تطبيق الساعة وتطبيق الهاتف المقابل رصد ما إذا كان التطبيق الآخر متاحًا.

يمكن لتطبيقات الهاتف والساعة استخدام CapabilityClient للإعلان عن توفُّرها على جهاز مقترن. ويمكنها إجراء ذلك بشكلٍ ثابت أو ديناميكي.

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

وإذا لم يتمكّن أحد تطبيقاتك من رصد التطبيق الآخر، يمكنك أن تطلب من المستخدم فتح بطاقة بيانات "متجر Play" على الجهاز المتأثر بالمشكلة. يُعدّ هذا حلاً مخصّصًا لتطبيقات الساعة الذكية التي تتطلّب توفُّر تطبيق الهاتف المقترن بها لكي تعمل بشكل صحيح.

يجب التحقق مما إذا كان "متجر Play" متوفرًا على الجهاز، لأنّ بعض الهواتف، مثل iPhone، لا تتوافق مع "متجر Play".

تصف الأقسام التالية أفضل الممارسات لسيناريوهين:

  • يجب استخدام تطبيق الهاتف في التطبيق المستقل للساعة الذكية.
  • يتطلّب تطبيق الهاتف استخدام تطبيق الساعة الذكية المستقل.

يمكنك أيضًا مراجعة نموذج تطبيق على GitHub لتوضيح هذه الوظيفة. لمزيد من المعلومات حول الفئات الموضَّحة في القسم التالي، يُرجى الاطّلاع على مرجع واجهة برمجة تطبيقات Wear OS. يتضمّن هذا المرجع أيضًا معلومات حول الفئة PhoneTypeHelper التي تحتوي على طريقة getPhoneDeviceType() التي تسمح لتطبيق Wear OS بالتحقّق مما إذا كان الهاتف المصاحب جهازًا يعمل بنظام التشغيل Android أو iOS.

تحديد أسماء الإمكانات لرصد تطبيقاتك

في التطبيق المتوافق مع كل نوع جهاز، سواء ساعة أو هاتف، حدِّد سلسلة فريدة لاسم الميزة في ملف res/values/wear.xml.

على سبيل المثال، في وحدة الأجهزة الجوّالة، قد يتضمّن ملف wear.xml ما يلي:

<resources xmlns:tools="http://schemas.android.com/tools"
        tools:keep="@array/android_wear_capabilities">
    <string-array name="android_wear_capabilities">
        <item>verify_remote_example_phone_app</item>
    </string-array>
</resources>

في وحدة Wear OS، يتضمّن ملف wear.xml قيمة مختلفة لاسم الميزة، على النحو التالي:

<resources xmlns:tools="http://schemas.android.com/tools"
        tools:keep="@array/android_wear_capabilities">
    <string-array name="android_wear_capabilities">
        <item>verify_remote_example_wear_app</item>
    </string-array>
</resources>

لمزيد من المعلومات، اطّلِع على إمكانات عرض الإعلانات.

رصد التطبيقات وفتح عنوان URL من الساعة

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

  1. استخدِم CapabilityClient للتأكّد مما إذا كان تطبيق الهاتف مثبّتًا على الهاتف المقترن. لمزيد من المعلومات، يمكنك الاطّلاع على نموذج التطبيق على GitHub.
  2. إذا لم يكن تطبيق الهاتف مثبّتًا على الهاتف، يمكنك استخدام طريقة PhoneDeviceType.getPhoneDeviceType() للتحقّق من نوع الهاتف. راجِع القسم التالي للحصول على التفاصيل.
  3. في حال إرجاع PhoneDeviceType.DEVICE_TYPE_ANDROID، يكون الهاتف يعمل بنظام التشغيل Android. يمكنك الاتصال بالرقم RemoteActivityHelper.startRemoteActivity() على جهاز Wear OS لفتح "متجر Play" على الهاتف. استخدِم معرّف الموارد المنتظم (URI) للسوق لتطبيق الهاتف، والذي قد يختلف عن معرّف الموارد المنتظم (URI) لتطبيق Wear OS. على سبيل المثال، استخدِم معرّف موارد منتظم (URI) للسوق، مثل: market://details?id=com.example.android.wearable.wear.finddevices.
  4. في حال إرجاع PhoneDeviceType.DEVICE_TYPE_IOS، يعني هذا أنّ الهاتف يعمل بنظام التشغيل iOS ولا يتوفّر عليه "متجر Play". افتح App Store على هاتف iPhone من خلال الاتصال بـ RemoteActivityHelper.startRemoteActivity() على جهاز Wear OS. يمكنك تحديد عنوان URL لتطبيقك على iTunes، مثل https://itunes.apple.com/us/app/yourappname.

    من خلال Wear OS، لا يمكنك تحديد ما إذا كان تطبيق الهاتف مثبَّتًا على جهاز iOS بشكل آلي أو لا. ومن بين أفضل الممارسات، يمكنك توفير آلية للمستخدم لبدء فتح App Store يدويًا.

ملاحظة: استخدِم واجهة برمجة التطبيقات RemoteActivityHelper الموضحة سابقًا لتحديد إمكانية فتح أي عنوان URL على الهاتف من الساعة وأنّه لا حاجة إلى استخدام أي تطبيق للهاتف.

تفاصيل رصد نوع الهاتف المقترن

في ما يلي مقتطف يستخدم طريقة getPhoneDeviceType() للتحقق من نوع الهاتف الذي تم إقران الساعة به:

Kotlin

var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)

Java

int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);

القيمة التي تعرضها الطريقة getPhoneDeviceType() هي واحدة مما يلي:

القيمة المعروضة الوصف
DEVICE_TYPE_ANDROID الهاتف المقترن هو جهاز Android.
DEVICE_TYPE_IOS الهاتف المصاحب هو جهاز iOS.
DEVICE_TYPE_UNKNOWN الهاتف المقترن هو جهاز غير معروف.
DEVICE_TYPE_ERROR حدث خطأ أثناء تحديد نوع الهاتف المقترن. يجب إجراء عملية تحقق أخرى لاحقًا.

بدء رصد التطبيقات من هاتف Android

يمكن لهاتف Android رصد تطبيق الساعة على أجهزة Wear OS الخاصة بأحد المستخدمين من خلال اتّباع الخطوات التالية:

  1. باستخدام NodeClient، يمكنك العثور على جميع الساعات المرتبطة بهاتف المستخدم. لمزيد من المعلومات، يمكنك الاطّلاع على نموذج التطبيق على GitHub.
  2. باستخدام CapabilityClient، يمكنك التحقّق من ساعات المستخدم التي تم تثبيت تطبيقك عليها.
  3. إذا لم يكن تطبيقك مثبّتًا على جميع ساعات المستخدم، يمكنك السماح للمستخدم بفتح "متجر Play" على الأجهزة المتبقية التي تعمل بنظام التشغيل Wear OS من الهاتف باستخدام طريقة RemoteActivityHelper.startRemoteActivity(). استخدِم معرّف الموارد المنتظم (URI) الخاص بالسوق لتطبيق Wear OS، والذي قد يكون مختلفًا عن معرّف الموارد المنتظم (URI) لتطبيق هاتفك. على سبيل المثال، استخدِم معرّف موارد منتظم (URI) للسوق، مثل: market://details?id=com.example.android.wearable.wear.finddevices.

بيانات الموقع الجغرافي للساعات المقترنة بهواتف iPhone

في الساعات المقترنة بهواتف iPhone، استخدِم مزوّد الموقع المدمج (FLP) للحصول على بيانات الموقع الجغرافي على الساعة. لمزيد من المعلومات، يمكنك الاطّلاع على رصد الموقع الجغرافي على نظام التشغيل Wear OS.

إذا كان الهاتف المقترن متاحًا، يستخدم FLP الهاتف المصاحب لبيانات الموقع الجغرافي.

الحصول على البيانات الضرورية فقط

بشكل عام، عند الحصول على بيانات من الإنترنت، يمكنك الحصول على البيانات الضرورية فقط. وإلا، فقد ينتج عن ذلك وقت استجابة غير ضروري واستخدام الذاكرة واستخدام البطارية بشكل غير ضروري.

وعند توصيل ساعة باستخدام اتصال Bluetooth LE، قد يتمكن تطبيقك من الوصول إلى معدل نقل بيانات يبلغ 4 كيلوبايت فقط في الثانية، اعتمادًا على الساعة. لذلك، ننصح باتّباع الخطوات التالية:

  • راجِع طلبات الشبكة واستجاباتها بحثًا عن البيانات الإضافية المطلوبة لتطبيق الهاتف فقط.
  • يمكنك تصغير الصور الكبيرة قبل إرسالها عبر شبكة إلى ساعة.

بالنسبة إلى الحالات التي تحتاج فيها إلى شبكة ذات معدّل نقل بيانات عالي، يمكنك الاطّلاع على الوصول إلى الشبكة ذات معدّل نقل البيانات العالي.

نماذج رموز إضافية

يوضِّح نموذج WearCheckRemoteApp استخدام واجهات برمجة التطبيقات المشمولة في هذه الصفحة بشكل أكبر.