باستخدام Wear OS by Google، يمكن للساعة التواصل مع شبكة مباشرةً بدون الحاجة إلى هاتف Android أو iOS. لا تستخدِم Data Layer API لربط تطبيق Wear OS بشبكة. بدلاً من ذلك، اتّبِع الإرشادات والخطوات الواردة في هذا الدليل.
الوصول إلى الشبكة
يمكن لتطبيقات Wear OS إرسال طلبات الشبكة. عندما تكون الساعة مرتبطة بالهاتف عبر البلوتوث، يتم عادةً توجيه حركة بيانات الشبكة الخاصة بالساعة عبر الهاتف.
عندما لا يكون الهاتف متاحًا، يتم استخدام شبكات Wi-Fi وشبكات الجوّال، وذلك حسب أجهزة الساعة. تتولّى منصة Wear OS عمليات الانتقال بين الشبكات.
يمكنك استخدام بروتوكولات مثل HTTP وTCP وUDP. ومع ذلك، لا تتوفّر واجهات برمجة التطبيقات
android.webkit، بما في ذلك فئة CookieManager. يمكنك استخدام ملفات تعريف الارتباط من خلال قراءة العناوين وكتابتها في الطلبات والردود.
استخدِم WorkManager للطلبات غير المتزامنة، بما في ذلك الاستطلاع على فترات منتظمة.
إذا كنت بحاجة إلى الاتصال بأنواع شبكات معيّنة، اطّلِع على قراءة حالة الشبكة.
الوصول إلى شبكة ذات نطاق ترددي عالٍ
تتولّى منصة Wear OS إدارة الاتصال بالشبكة بهدف تقديم أفضل تجربة مستخدم شاملة. تختار المنصة الشبكة النشطة التلقائية من خلال الموازنة بين حاجتين: عمر البطارية الطويل ومعدل نقل البيانات على الشبكة.
عند إعطاء الأولوية للحفاظ على البطارية، قد لا تتوفّر في الشبكة النشطة سعة نطاق كافية لتنفيذ مهام الشبكة، مثل نقل الملفات الكبيرة أو بث الوسائط.
يقدّم هذا القسم إرشادات حول استخدام فئة ConnectivityManager للمساعدة في ضمان توفّر النطاق الترددي للشبكة الذي يحتاج إليه تطبيقك. للحصول على معلومات عامة حول التحكّم الدقيق في موارد الشبكة، اطّلِع على إدارة استخدام الشبكة.
طلب الاتصال بشبكة Wi-Fi
بالنسبة إلى حالات الاستخدام التي تتطلّب الوصول إلى شبكة ذات معدل نقل بيانات عالٍ، مثل نقل الملفات الكبيرة أو بث الوسائط، اطلب الاتصال باستخدام وسيلة نقل ذات معدل نقل بيانات عالٍ، مثل شبكة Wi-Fi. يظهر ذلك في المثال التالي:
val callback = object : ConnectivityManager.NetworkCallback() { override fun onAvailable(network: Network) { super.onAvailable(network) // The Wi-Fi network has been acquired. Bind it to use this network by default. connectivityManager.bindProcessToNetwork(network) } override fun onLost(network: Network) { super.onLost(network) // Called when a network disconnects or otherwise no longer satisfies this request // or callback. } } fun requestWifiNetwork() { connectivityManager.requestNetwork( NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback ) }
قد لا يتم الحصول على شبكة على الفور، لأنّ راديو Wi-Fi أو شبكة الجوّال في الساعة قد يكون غير مفعّل للحفاظ على البطارية. إذا تعذّر على الساعة الاتصال بشبكة، لن يتم استدعاء طريقة onAvailable() من مثيل NetworkCallback.
بعد استدعاء onAvailable()، يحاول الجهاز البقاء متصلاً بشبكة Wi-Fi إلى أن يتم تحرير NetworkCallback. للحفاظ على عمر البطارية،
حرِّر معاودة الاتصال كما هو موضّح في المثال التالي عندما لا تعود بحاجة إلى
شبكة Wi-Fi.
connectivityManager.bindProcessToNetwork(null) connectivityManager.unregisterNetworkCallback(callback)
تشغيل نشاط إعدادات Wi-Fi
عند طلب شبكة Wi-Fi، يحاول النظام الاتصال بشبكة محفوظة
إذا تم ضبط إحداها وكانت ضمن النطاق. إذا لم تتوفّر أي شبكة Wi-Fi محفوظة، لن يتم استدعاء طريقة معاودة الاتصال onAvailable الخاصة بكائن NetworkCallback.
إذا كنت تستخدم Handler لتحديد وقت انتهاء مهلة طلب الشبكة، يمكنك توجيه المستخدم لإضافة شبكة Wi-Fi عند حدوث انتهاء المهلة. أرسِل المستخدم مباشرةً إلى
نشاط إضافة شبكة Wi-Fi باستخدام النية التالية:
val networkSettingsAction = "com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS" val intent = Intent(networkSettingsAction).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } context.startActivity(intent)
لبدء نشاط الإعدادات، يجب أن يكون لدى تطبيقك إذن CHANGE_WIFI_STATE.
اعتبارات خاصة بواجهة المستخدم
إذا كان تطبيقك يتطلّب الاتصال بشبكة Wi-Fi جديدة لإجراء عملية تتطلّب نطاقًا تردديًا عاليًا، عليك الحصول على هذا الاتصال بسلاسة وإيقافه عند الحاجة. إذا لم تتوفّر شبكة Wi-Fi، اشرح أنّ الميزة تتطلّب شبكة Wi-Fi وقدِّم وسيلة لتشغيل "نشاط إعدادات Wi-Fi". لا تحظر على المستخدم الوصول إلى ميزات التطبيق التي لا تتطلّب شبكة ذات نطاق ترددي عالٍ.
اعتبارات حول استهلاك الطاقة واستخدام البيانات
للمساعدة في الحفاظ على عمر البطارية وتقليل استخدام بيانات الجوّال، أجِّل أي مهام غير أساسية على الشبكة، مثل إعداد تقارير الإحصاءات أو جمع السجلات، إلى أن يعيد جهاز Wear OS إنشاء اتصال عبر البلوتوث أو Wi-Fi بدلاً من اتصال عبر شبكة LTE أو اتصال محدود.
المراسلة عبر السحابة الإلكترونية
لإرسال الإشعارات، استخدِم المراسلة عبر السحابة الإلكترونية من Firebase (FCM) مباشرةً.
لا تتوفّر واجهات برمجة تطبيقات خاصة بنظام التشغيل Wear OS للوصول إلى الشبكة أو خدمة المراسلة عبر السحابة الإلكترونية من Firebase. يُرجى الرجوع إلى المستندات الحالية حول الاتصال بشبكة والمراسلة عبر السحابة الإلكترونية.
تعمل خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" بشكل جيد مع ميزة الوضع "السكون"، وهي الطريقة التي يُنصح بها لإرسال الإشعارات إلى الساعات.
توفير الرسائل من "المراسلة عبر السحابة الإلكترونية من Firebase" من خلال جمع رمز تسجيل لجهاز عند تشغيل تطبيق Wear OS بعد ذلك، أدرِج الرمز المميّز كجزء من الوجهة عندما يرسل الخادم رسائل إلى نقطة نهاية REST الخاصة بخدمة "المراسلة عبر السحابة الإلكترونية من Firebase". ترسل خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" الرسائل إلى الجهاز الذي تم تحديده بواسطة الرمز المميز.
تكون رسالة FCM بتنسيق JavaScript Object Notation (JSON) ويمكن أن تتضمّن حمولة واحدة أو كلتيهما:
- حمولة الإشعار: عندما تتلقّى ساعة حمولة إشعار، يتم عرض البيانات للمستخدم مباشرةً في سلسلة الإشعارات. عندما ينقر المستخدم على الإشعار، يتم تشغيل تطبيقك.
- حمولة البيانات: عندما تحتوي الحمولة على مجموعة من أزواج المفتاح أو القيمة المخصّصة. يتم تسليم الحمولة كبيانات إلى تطبيق Wear OS.
لمزيد من المعلومات والأمثلة على الحِزم، يُرجى الاطّلاع على أنواع الرسائل.
يتم تلقائيًا نقل الإشعارات من تطبيق على الهاتف إلى الساعة. إذا كان لديك تطبيق Wear OS مستقل وتطبيق هاتف مطابق، قد تتلقّى إشعارات مكرّرة. على سبيل المثال، يمكن أن يعرض كل من الهاتف والساعة إشعارًا واحدًا من FCM تلقّاه الجهازان بشكل مستقل. يمكنك منع ذلك باستخدام واجهات برمجة التطبيقات للربط.
استخدام الخدمات التي تعمل في الخلفية
للمساعدة في ضمان تنفيذ المهام التي تعمل في الخلفية بشكل صحيح، يجب أن تراعي هذه المهام وضعَي Doze و"وضع الاستعداد للتطبيق".
عندما يتم إيقاف تشغيل الشاشة أو الانتقال إلى وضع عدم النشاط لفترة طويلة بما يكفي، يمكن أن يحدث جزء من وضع Doze، ويمكن تأجيل المهام التي تعمل في الخلفية لفترات زمنية معيّنة.
في وقت لاحق، عندما يظل الجهاز ثابتًا لفترة طويلة، يتم تفعيل وضع "توفير الطاقة" العادي.
جدولة الطلبات باستخدام واجهة برمجة التطبيقات WorkManager، التي تتيح لتطبيقك التسجيل لتنفيذ الرمز البرمجي المتوافق مع وضع "السكون"
تحديد موعد مع قيود
يمكنك استخدام القيود لضبط الطلبات بطريقة تحافظ على عمر البطارية. اختَر واحدًا أو أكثر من القيود التالية لتضمينها في طلباتك:
جدولة طلب يتطلّب ربط الشبكات
حدِّد ما إذا كانت
NetworkTypeهيCONNECTEDأوUNMETERED. يُستخدمUNMETEREDلنقل البيانات الكبيرة، بينما يُستخدمCONNECTEDلنقل البيانات الصغيرة.جدولة طلب أثناء الشحن
جدولة طلب عندما يكون الجهاز غير نشط ويكون ذلك مفيدًا لتنفيذ مهام الخلفية أو المزامنة ذات الأولوية المنخفضة، خاصةً عندما يكون الجهاز قيد الشحن.
لمزيد من المعلومات، راجِع دليل تأثير القيود على العمل الدوري في WorkManager.