إرسال خلفية شاشة الساعة

يقدِّم نظام التشغيل Wear OS 6 واجهة برمجة تطبيقات جديدة، Watch Face Push، تتيح حالات استخدام أكثر تقدّمًا لنشر خلفيات شاشة الساعة.

تحديد وقت استخدام ميزة Watch Face Push

‫Watch Face Push هي واجهة برمجة تطبيقات على Wear OS تتيح للمطوّر إضافة خلفيات شاشة الساعة أو تعديلها أو إزالتها مباشرةً. ولا تحتاج إليها لتطوير خلفيات شاشة عادية للساعات.

يجب كتابة خلفيات شاشة الساعة المستخدَمة مع ميزة Watch Face Push باستخدام "تنسيق خلفية شاشة الساعة". يمكن أن يشمل ذلك خلفيات شاشة الساعة المصمَّمة باستخدام أداة Watch Face Designer أو Watch Face Studio أو أي أداة أخرى تنشئ خلفيات شاشة ساعة تستخدم "تنسيق خلفية شاشة الساعة".

على الرغم من إمكانية استخدام Watch Face Push API بعدة طرق، يوضّح الجدول التالي حالات الاستخدام الرئيسية:

حالة الاستخدام الحل المقترح التعقيد
أريد إنشاء خلفيات شاشة ساعة فردية ونشرها. استخدام "تنسيق خلفية شاشة الساعة"، سواء بشكل مباشر أو من خلال أداة مثل Watch Face Designer أو Watch Face Studio، ونشرها على Google Play منخفضة
أريد إنشاء تطبيق هاتف يتيح للمستخدمين اختيار خلفيات شاشة ساعة من مجموعة منتقاة، أو تصميم خلفيات شاشة ساعة وتخصيصها لتثبيتها مباشرةً على ساعة Wear OS. أنشئ تطبيقًا لكل من الساعة والهاتف باستخدام واجهة برمجة التطبيقات Watch Face Push API على الساعة. مرتفع

الغرض

حالة الاستخدام الأساسية لواجهة برمجة التطبيقات Watch Face Push API هي إنشاء تطبيق سوق. من خلال هذا التطبيق، يمكن للمستخدمين اختيار خلفيات شاشة الساعة من مجموعة منسَّقة على هواتفهم والتحكّم مباشرةً في تثبيت هذه الخلفيات على ساعاتهم المتصلة.

الاعتبارات

للحصول على تفاصيل حول إنشاء خلفيات شاشة الساعة، يُرجى الرجوع إلى إرشادات تنسيق خلفية شاشة الساعة: خلفيات شاشة الساعة التي يتم نشرها باستخدام ميزة Watch Face Push هي خلفيات شاشة ساعة عادية بتنسيق خلفية شاشة الساعة.

عند إنشاء خلفية شاشة الساعة، ضَع في اعتبارك ما يلي.

أسماء الحزم

يجب أن تتوافق خلفيات شاشة الساعة المثبَّتة باستخدام Watch Face Push مع الاتفاقية التالية:

<app name>.watchfacepush.<watchface name>

... حيث <app name> هو اسم حزمة التطبيق الذي يستدعي واجهة برمجة التطبيقات Watch Face Push.

على سبيل المثال، بالنسبة إلى تطبيق يحمل اسم الحزمة com.example.mymarketplace، تكون أسماء حِزم خلفيات شاشة الساعة التالية صالحة:

  • com.example.mymarketplace.watchfacepush.watchface1
  • com.example.mymarketplace.watchfacepush.watchface2
  • com.example.mymarketplace.watchfacepush.another_watchface

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

محتوى الحزمة

يفرض النظام قيودًا صارمة على محتويات حِزم APK. من الناحية الفنية، يمكن إنشاء حِزم APK لتنسيق خلفية شاشة الساعة تحتوي على ملفات بيانات وصفية غير ضارة وغيرها من العناصر التي قد يقبلها Google Play ولكنها لا تجتاز عملية التحقّق من صحة ميزة "إرسال خلفية شاشة الساعة" (راجِع ما يلي).

يجب أن يحتوي كل ملف APK لخلفية شاشة الساعة على الملفات/المسارات التالية فقط:

  • /AndroidManifest.xml
  • /resources.arsc
  • /res/**
  • /META-INF/**

بالإضافة إلى ذلك، يجب أن يحتوي ملف AndroidManifest.xml على العلامات التالية فقط:

  • <manifest>
  • <uses-feature>
  • <uses-sdk>
  • <application>
  • <property>
  • <meta-data>

أخيرًا، يجب أن تحدّد الحزمة minSdk بقيمة 33 على الأقل، ويجب أن تحدّد العلامة <application> السمة android:hasCode="false".

التحقق من صحة البيانات

على عكس خلفيات شاشة الساعة العادية التي يتم توزيعها من خلال Google Play، يتولّى تطبيق "السوق" التحقّق من أنّ كل خلفية شاشة ساعة يتم نشرها باستخدام Watch Face Push متوافقة مع المعايير وتعمل بشكل جيد.

تستخدم ميزة Watch Face Push عمليات التحقّق التالية من الصحة للتأكّد من جودة كل خلفية شاشة ساعة:

  1. يجب أن تجتاز جميع خلفيات شاشة الساعة التي يتم تثبيتها أو تعديلها من خلال Watch Face Push API أداة التحقّق من Watch Face Push.
  2. استخدِم أداة التحقّق الرسمية فقط لإنشاء رموز مميزة للتحقّق لاستخدامها مع واجهة برمجة التطبيقات.
  3. يجب أن تكون أداة التحقّق محدّثة عند تشغيلها.
  4. ليس عليك إعادة التحقّق من صحة ملف APK لم يتغيّر. لا تنتهي صلاحية الرموز المميزة، حتى عند إيقاف الإصدار الذي تم استخدامه من أداة التحقّق.

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

تشغيل أداة التحقّق

تتوفّر أداة التحقّق بثلاثة أشكال:

  • أداة سطر أوامر
  • مكتبة لاستخدامها مع آلة جافا الافتراضية
  • مكتبة للاستخدام على Android

استخدام أداة التحقّق من صحة البيانات في سطر الأوامر

  1. الحصول على أداة التحقّق من مستودع Maven من Google
  2. شغِّل الأداة على النحو التالي:

    java -jar validator-push-cli-1.0.0-alpha10.jar \
        --apk_path=<your watch face>.apk \
        --package_name=<your marketplace package name>
    

    في حال نجاح العملية، سيتضمّن الناتج رمزًا مميّزًا للتحقّق، ويجب تقديمه إلى واجهة برمجة التطبيقات Watch Face Push عند إضافة خلفية ساعة أو تعديلها.

    في حال حدوث خطأ، يتضمّن الناتج تفاصيل حول عملية التحقّق المحدّدة التي تعذّر إجراؤها.

استخدام أداة التحقّق من المكتبة

  1. تضمين مستودعَي Google وJitpack ويجب توفّر كليهما لاستخدام مكتبة أدوات التحقّق.

    repositories {
        ...
        google()
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. أدرِج تبعية أداة التحقّق في مشروعك:

    // For use on JVM
    implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha10")
    
    // For use on Android
    implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha10")
    
    
  3. شغِّل أداة التحقّق من الصحة:

    val validator = DwfValidatorFactory.create()
    val result = validator.validate(watchFaceFile, appPackageName)
    
    if (result.failures().isEmpty()) {
        val token = result.validationToken()
        println("Validation token: $token")
    
        // Validation success - continue with the token
        // ...
    } else {
        // There were failures, handle them accordingly - validation has failed.
        result.failures().forEach { failure ->
            println("FAILURE: ${failure.name()}: ${failure.failureMessage()}")
            // ...
        }
    }

للاطّلاع على مثال على استخدام هذه المكتبة، يُرجى الاطّلاع على عيّنة GitHub. يمكنك أيضًا الاطّلاع على مكتبة Portable Asset Compiler Kit (Pack)، وهي مفيدة لإنشاء حِزم APK على الجهاز، لاستخدامها مع أداة التحقّق المستندة إلى Android.

حجم حزمة APK

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

قد يستغرق نقل حِزمة APK كبيرة الحجم وقتًا طويلاً، ما يؤدي إلى تقديم تجربة سيئة للمستخدمين واستنزاف البطارية.

  • استخدِم مكتبات مناسبة، مثل pngquant، للحفاظ على الحد الأدنى من أحجام ملفات الصور
    • تضمين ذلك في عملية تصميم مجموعة خلفيات شاشة الساعة
    • تأكَّد من أنّ أبعاد الصورة مناسبة للحجم الذي تستخدمها به.
    • يجب اقتصاص الصور بشكل مناسب لإزالة أي خلفية محيطة.
  • تقليل حجم ملفات الخطوط

راجِع إرشادات تحسين استخدام الذاكرة للحصول على المزيد من الاقتراحات حول الحفاظ على الحد الأدنى لحجم حِزم APK.

توقيع حزمة APK

وكما هو الحال مع حِزم APK العادية، يجب توقيع جميع تصاميم خلفيات شاشة الساعة. أنشئ مفتاحًا مختلفًا عن المفتاح الذي تستخدمه مع تطبيقك الرئيسي، واستخدِم المفتاح المختلف لجميع خلفيات شاشات الساعة.

هندسة معمارية

ضَع في اعتبارك المكوّنات الرئيسية الأربعة للنظام:

  1. التخزين المستند إلى السحابة الإلكترونية: في تطبيق Marketplace الأساسي، يمكنك إنشاء خلفيات شاشة الساعة وتخزينها في السحابة الإلكترونية لتكون جاهزة للاستخدام من قِبل المستخدمين. تتضمّن خلفيات شاشة الساعة السمات التالية:
    1. ويتم إنشاؤها مسبقًا كحِزم APK عادية بتنسيق خلفية شاشة الساعة.
    2. تحتوي كل حِزمة APK على خلفية شاشة ساعة واحدة فقط تستند إلى "تنسيق خلفية شاشة الساعة".
    3. ويتم التحقّق من صحتها من خلال عملية التحقّق من صحة Watch Face Push، ويتم تخزينها مع الرمز المميز للتحقق المرتبط بها.
    4. ويمكن لتطبيق الهاتف استرجاعها عند الحاجة.
  2. تطبيق الهاتف: تطبيق الهاتف هو الطريقة الرئيسية التي يتفاعل بها المستخدمون مع نظامك. ويتيح لهم ذلك ما يلي:
    1. تصفُّح قائمة خلفيات شاشة الساعة والبحث فيها
    2. تثبيت خلفية ساعة أو استبدالها على الساعة
  3. تطبيق الساعة الذكية: قد لا يتضمّن تطبيق الساعة الذكية عادةً واجهة مستخدم مهمة. وهي في الأساس وسيط بين تطبيق الهاتف وواجهات برمجة التطبيقات الخاصة بخدمة Watch Face Push، وتتضمّن الوظائف التالية:
    1. استخدام Watch Face Push API لتثبيت خلفيات شاشة الساعة أو تحديثها أو استبدالها
    2. طلب الأذونات اللازمة وتوجيه المستخدم
    3. توفير خلفية شاشة ساعة تلقائية
    4. توفير ذاكرة تخزين مؤقت بسيطة لخلفيات شاشة الساعة
  4. التواصل بين الهاتف والساعة: يُعد التواصل بين تطبيق الهاتف وتطبيق ساعة ذكية أمرًا أساسيًا لنجاح التجربة بشكل عام. استخدِم واجهات برمجة التطبيقات الخاصة بطبقة البيانات في Wear OS، والتي تتيح ما يلي:
    1. رصد التثبيت: باستخدام الإمكانات وCapabilityClient، يمكن لتطبيق الهاتف رصد عدم توفّر تطبيق الساعة الذكية والعكس صحيح. يمكنك بعد ذلك إطلاق هدف إلى "متجر Play" لتثبيت شكل الجهاز غير المتوفّر.
    2. إدارة الحالة: باستخدام DataClient أو MessageClient، يمكنك الحفاظ على مزامنة الهاتف مع حالة الساعة، مثلاً، مزامنة حالة خلفية شاشة الساعة النشطة.
    3. نقل حِزم APK: يمكنك استخدام ChannelClient أو MessageClient لإرسال حِزم APK من الهاتف إلى الساعة
    4. الاستدعاء عن بُعد: باستخدام Messageclient، يمكن للهاتف أن يطلب من الساعة استدعاء واجهة برمجة التطبيقات Watch Face Push API، وذلك مثلاً لتثبيت خلفية شاشة الساعة.

يُرجى الرجوع إلى إرشادات Data Layer API لمزيد من التفاصيل.