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

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

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

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

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

بالنسبة إلى التطبيقات الجديدة، يجب أن يكون مستوى واجهة برمجة التطبيقات المستهدَف 30 أو أعلى. للحصول على مزيد من المعلومات، يُرجى الاطّلاع على استيفاء متطلبات مستوى واجهة برمجة التطبيقات المستهدَف في 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".

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

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

يمكنك أيضًا مراجعة نموذج مساعدي طبقة البيانات، الذي يوضح كيفية استخدام مكتبات مساعدي طبقة البيانات، وهي جزء من علم علماء. تتيح لك أدوات المساعدة هذه مراقبة الاتصال بين جهاز محمول باليد وجهاز Wear OS. للحصول على مزيد من المعلومات حول الفئات الموضّحة في القسم التالي، يمكنك الاطّلاع على مرجع واجهة برمجة تطبيقات 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 API الموضّحة سابقًا لتحديد أي عنوان 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 كيلوبايت في الثانية، وهذا اعتمادًا على الساعة. ولذلك، يوصى بالخطوات التالية:

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

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

عيّنات تعليمات برمجية إضافية

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