Ürün Haberleri

Watch Face Push ile Androidify'ı Wear OS'e taşıma

Okuma süresi: 3 dk.
Garan Jenkin'in profilini görüntüle
Garan Jenkin Geliştirici İlişkileri Mühendisi

 

 

Birkaç ay önce, kişiselleştirilmiş Android botları oluşturmaya yönelik bir uygulama olarak Androidify'ı yeniden kullanıma sunduk. Androidify, Gemini ve Imagen'ı kullanarak selfie fotoğrafınızı eğlenceli bir Android botuna dönüştürür.

Ancak Android'in, en yeni eklememiz olan XR da dahil olmak üzere birden fazla form faktörünü kapsadığını göz önünde bulundurarak Androidify eğlencesini Wear OS'e nasıl taşıyabileceğimizi düşündük.

Androidify kadranı

Androidify botları son derece kişiselleştirilmiş olduğundan, bunları sergilemek için en doğal yer kadrandır. Bu, en sık görünen yüzey olmasının yanı sıra en kişisel yüzeydir ve kim olduğunuzu temsil etmenize olanak tanır.

demonstration.gif

Selfie resminden oluşturulan kişiselleştirilmiş Androidify kadranı

Androidify artık telefon uygulamasında dinamik olarak kadran oluşturup saatinize gönderebiliyor. Gönderilen kadran, saatinizde otomatik olarak kadranınız olarak ayarlanıyor. Tüm bunlar saniyeler içinde gerçekleşir.

Üst düzey tasarım

image.png

Kadran oluşturma ve yükleme için uçtan uca akış

Uçtan uca deneyimi elde etmek için bu üst düzey tasarım diyagramında gösterildiği gibi bir dizi teknolojinin birleştirilmesi gerekir.

Öncelikle kullanıcının avatarı, önceden mevcut olan bir Saat Kadranı Formatı şablonuyla birleştirilir ve ardından bir APK'da paketlenir. Bu, açıklanacak nedenlerden dolayı doğrulanmıştır. - ve saate gönderilir.

Saat tarafından alındıktan sonra, kadranı yüklemek ve etkinleştirmek için Wear OS 6'nın bir parçası olan yeni Watch Face Push API kullanılır.

Ayrıntıları inceleyelim:

Kadran şablonlarını oluşturma

Kadran, Kadran Tasarım Aracı'nda tasarlanan bir şablondan oluşturulur. Bu, doğrudan Figma'da Saat Kadranı Formatı kadranları oluşturmanıza olanak tanıyan yeni Figma eklentimizdir.

image.png

Watch Face Designer'da Androidify kadran şablonu

Eklenti, kadranın Saat Kadranı Formatı (WFF) kaynakları da dahil olmak üzere çeşitli şekillerde dışa aktarılmasına olanak tanır. Bunlar daha sonra, nihai kadranı dinamik olarak oluşturmak için Androidify uygulamasındaki öğeler olarak kolayca dahil edilebilir.

Paketleme ve doğrulama

Şablon ve avatar birleştirildikten sonra APK oluşturmak için Taşınabilir Öğe Derleyici Kiti (Pack) kullanılır.

Androidify'da Pack, telefonda yerel kitaplık olarak kullanılır. Androidify'ın Pack kitaplığıyla nasıl arayüz oluşturduğu hakkında daha fazla bilgi için GitHub deposuna bakın.

APK, aktarımdan önceki son adım olarak Watch Face Push doğrulayıcı tarafından kontrol edilir.

Bu doğrulayıcı, APK'nın yüklemeye uygun olup olmadığını kontrol eder. Bu süreçte, APK'nın içeriği kontrol edilerek geçerli bir kadran olup olmadığına bakılır ve bazı performans kontrolleri yapılır. Geçerliyse doğrulayıcı bir jeton oluşturur.

Bu jeton, saatin yükleme yapması için gereklidir.

Kadran gönderiliyor

Wear OS'teki Androidify uygulaması, Giyilebilir Veri Katmanı'ndaki etkinlikleri dinlemek için WearableListenerService'i kullanır.

Telefon uygulaması, işlemi ayarlamak için MessageClient, APK'yı aktarmak için ise ChannelClient kombinasyonunu kullanarak kadranı aktarır.

Kadran saate yükleniyor

Kadran, Wear OS cihazda alındıktan sonra Androidify uygulaması, kadranı yüklemek için yeni Watch Face Push API'yi kullanır:

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, senaryoya bağlı olarak addWatchFace veya updateWatchFace yöntemini kullanır: Watch Face Push, "yuva" kavramını tanımlar. Bu kavram, belirli bir uygulamanın herhangi bir zamanda kaç kadran yükleyebileceğini ifade eder. Wear OS 6 için bu değer aslında 1'dir.

Androidify'ın yaklaşımı, boş bir yuva varsa kadranı yüklemek, yoksa mevcut kadranlardan birini yenisiyle değiştirmektir.

Etkin kadranı ayarlama

Kadranı programatik olarak yüklemek harika bir adımdır ancak Androidify, kadranın aynı zamanda etkin kadran olmasını da sağlamaya çalışır. 

Watch Face Push, uygulamaların bu işlemi gerçekleştirebilmesi için verilmesi gereken yeni bir çalışma zamanında istenen izin sunar:

com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE

Bu izin alındıktan sonra, yüklü bir kadranı etkin kadran olarak ayarlamak için wfpManager.setWatchFaceAsActive() yöntemi çağrılabilir.

Ancak Androidify'ın dikkate alması gereken birkaç nokta vardır:

  • setWatchFaceAsActive yalnızca bir kez kullanılabilir.
  • SET_PUSHED_WATCH_FACE_AS_ACTIVE, kullanıcı tarafından reddedildikten sonra yeniden istenemez.
  • Androidify, etkin kadranı zaten kontrol ediyor olabilir.

Daha fazla bilgi için Androidify'ın etkin mantığı nasıl uyguladığına bakın.

Wear OS için Watch Face Push'u kullanmaya başlama

Watch Face Push, Androidify'ı geliştirmek ve tam özellikli kadran mağazaları oluşturmak için eşit derecede uygun, çok yönlü bir API'dir.

Mevcut bir telefon uygulamanız var ve kullanıcılarınızla daha fazla etkileşim kurup onları memnun etmenin yollarını mı arıyorsunuz?

Belki de mevcut bir kadran geliştiricisisiniz ve bir pazar yeri uygulaması yayınlayarak kendi topluluğunuzu ve galerinizi oluşturmak istiyorsunuz.

Şu kaynaklara göz atın:

Androidify'ı Wear OS'e nasıl taşıdığımızı daha ayrıntılı bir şekilde öğrenmek için ilgili videoya da göz atabilirsiniz.

Watch Face Push ile neler üreteceğinizi görmek için sabırsızlanıyoruz.

Yazan:
Okumaya devam et