أخبار المنتجات

نقل Androidify إلى Wear OS باستخدام Watch Face Push

قراءة لمدة 3 دقائق
Garan Jenkin
مهندسة علاقات المطوّرين

 

 

أعدنا إطلاق Androidify قبل بضعة أشهر كتطبيق لإنشاء روبوتات Android مخصّصة. يحوّل Androidify صورة السيلفي إلى روبوت Android مرح باستخدام Gemini وImagen.

بما أنّ Android يشمل أشكال أجهزة متعددة، بما في ذلك أحدث إضافة إليه، وهي XR، فكّرنا في كيفية نقل متعة Androidify إلى Wear OS.

خلفية شاشة ساعة Androidify

بما أنّ روبوتات Androidify مخصّصة إلى حد كبير، فإنّ المكان الطبيعي لعرضها هو خلفية شاشة الساعة. فهي ليست السطح الأكثر ظهورًا فحسب، بل أيضًا السطح الأكثر شخصية، ما يسمح لك بعرض هويتك.

demonstration.gif

خلفية شاشة ساعة Androidify مخصّصة تم إنشاؤها من صورة سيلفي

يتيح Androidify الآن إمكانية إنشاء خلفية شاشة ساعة ديناميكيًا داخل تطبيق الهاتف ثم إرسالها إلى ساعتك، حيث سيتم ضبطها تلقائيًا كخلفية شاشة الساعة. ويحدث كل ذلك في غضون ثوانٍ.

التصميم العام

image.png

سير العمل الكامل لإنشاء خلفية شاشة الساعة وتثبيتها

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

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

عند استلام الساعة لخلفية شاشة الساعة، يتم استخدام واجهة برمجة التطبيقات الجديدة Watch Face Push API، وهي جزء من Wear OS 6، لتثبيت خلفية شاشة الساعة وتفعيلها.

لنستكشف التفاصيل:

إنشاء نماذج خلفيات شاشة الساعة

يتم إنشاء خلفية شاشة الساعة من نموذج تم تصميمه في Watch Face Designer.هذه هي الإضافة الجديدة إلى Figma التي تتيح لك إنشاء خلفيات شاشة ساعة بتنسيق خلفية شاشة الساعة مباشرةً داخل Figma.

image.png

نموذج خلفية شاشة ساعة Androidify في Watch Face Designer

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

التجميع والتحقق من الصحة

بعد دمج النموذج والصورة الرمزية، يتم استخدام Portable Asset Compiler Kit (Pack) لتجميع ملف APK.

في Androidify، يتم استخدام Pack كمكتبة مجمّعة من رموز برمجية أصلية على الهاتف.لمزيد من التفاصيل حول كيفية تفاعل Androidify مع مكتبة Pack، يُرجى الاطّلاع على مستودع GitHub.

كخطوة أخيرة قبل الإرسال، يتحقق أداة التحقق من صحة Watch Face Push من ملف APK.

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

تحتاج الساعة إلى هذا الرمز المميّز للتثبيت.

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

يستخدم تطبيق Androidify على Wear OS خدمة WearableListenerService لرصد الأحداث على طبقة البيانات القابلة للارتداء.

ينقل تطبيق الهاتف خلفية شاشة الساعة باستخدام مزيج من MessageClient لإعداد العملية، ثم ChannelClient لبث ملف APK.

تثبيت خلفية شاشة الساعة على الساعة

بعد استلام خلفية شاشة الساعة على جهاز Wear OS، يستخدم تطبيق Androidify واجهة برمجة التطبيقات الجديدة Watch Face Push API لتثبيت خلفية شاشة الساعة:

val wfpManager = 

    WatchFacePushManagerFactory.createWatchFacePushManager(context)

val response = wfpManager.listWatchFaces()



try {

    if (response.remainingSlotCount > 0) {

        wfpManager.addWatchFace(apkFd, token)

    } else {

        val slotId = response.installedWatchFaceDetails.first().slotId

        wfpManager.updateWatchFace(slotId, apkFd, token)

    }

} catch (a: WatchFacePushManager.AddWatchFaceException) {

    return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR

} catch (u: WatchFacePushManager.UpdateWatchFaceException) {

    return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR

}

يستخدم Androidify الطريقتَين addWatchFace أو updateWatchFace، حسب السيناريو: يحدّد Watch Face Push مفهوم "الفتحات"، أي عدد خلفيات شاشة الساعة التي يمكن تثبيتها لتطبيق معيّن في أي وقت. بالنسبة إلى Wear OS 6، تكون هذه القيمة في الواقع 1.

يتمثّل نهج Androidify في تثبيت خلفية شاشة الساعة إذا كانت هناك فتحة متاحة، وإذا لم يكن الأمر كذلك، يتم استبدال أي خلفية شاشة ساعة حالية بالخلفية الجديدة.

ضبط خلفية شاشة الساعة النشطة

يُعد تثبيت خلفية شاشة الساعة آليًا خطوة رائعة، ولكن يسعى Androidify أيضًا إلى التأكّد من أنّ خلفية شاشة الساعة هي الخلفية النشطة. 

يقدّم Watch Face Push إذن تشغيل جديدًا يجب منحه لكي تتمكّن التطبيقات من تحقيق ذلك:

com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE

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

ومع ذلك، هناك عدد من الاعتبارات التي يجب أن يأخذها Androidify في الاعتبار:

  • لا يمكن استخدام setWatchFaceAsActive إلا مرة واحدة.
  • لا يمكن إعادة طلب SET_PUSHED_WATCH_FACE_AS_ACTIVE بعد أن يرفضه المستخدم.
  • قد يكون Androidify يتحكّم حاليًا في خلفية شاشة الساعة النشطة.

لمزيد من التفاصيل، اطّلِع على كيفية تنفيذ Androidify لمنطق الضبط كخلفية نشطة.

البدء في استخدام Watch Face Push لنظام التشغيل Wear OS

‫Watch Face Push هي واجهة برمجة تطبيقات متعددة الاستخدامات، وهي مناسبة تمامًا لتحسين Androidify كما هي مناسبة لإنشاء متاجر خلفيات شاشة ساعة كاملة الميزات.

ربما لديك تطبيق حالي على الهاتف وتبحث عن فرص لزيادة تفاعل المستخدمين وإبهارهم.

أو ربما أنت مطوّر حالي لخلفيات شاشة الساعة وتبحث عن إنشاء منتدى ومعرض خاصين بك من خلال إطلاق تطبيق متجر.

ألقِ نظرة على هذه المراجع:

يُرجى أيضًا الاطّلاع على الفيديو المصاحب للحصول على نظرة أكثر تفصيلاً حول كيفية نقل Androidify إلى Wear OS.

نتشوّق لرؤية ما ستنشئه باستخدام Watch Face Push.

المؤلّف:

متابعة القراءة