Wear OS'te veri gönderme ve senkronize etme

Wear OS by Google ile bir saatin verileri göndermek ve senkronize etmek için birden fazla yolu vardır. Uygulamanın bağımsız bir uygulama olarak kabul edilmesine olanak tanıdığından verileri doğrudan ağdan göndermenizi ve senkronize etmenizi öneririz.

Doğrudan ağdan veri gönderin ve senkronize edin

Ağ ile doğrudan iletişim kuracak Wear OS uygulamaları oluşturun. Mobil geliştirme için kullandığınız API'lerin aynısını kullanabilirsiniz ancak Wear-OS'a özgü bazı farklılıkları aklınızda bulundurun.

Giyilebilir Veri Katmanı API'si ile veri gönderme ve senkronize etme

Google Play Hizmetleri'nin bir parçası olan Giyilebilir Veri Katmanı API'si, uygulamalar için isteğe bağlı bir iletişim kanalı sağlar.

Bu API yalnızca Wear OS kol saatlerinde ve eşlenen Android cihazlarda kullanılabilir. iOS telefonlarla eşlenmiş Wear OS saatlerde uygulamalar, internet bağlantısı varsa diğer bulut tabanlı API'leri sorgulayabilir.

Giyilebilir Veri Katmanı API'sinin bağımlılıkları şunlardır:

Wear modülünüzün build.gradle dosyasına aşağıdaki bağımlılığı ekleyin:

  dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:18.1.0'
  }
  

Giyilebilir cihazların verileri doğrudan bir ağdan veya bağlı telefondan göndermesini ve senkronize etmesini öneririz. Ancak cihazlar arasında RPC türü biçimde doğrudan iletişim kurmak istiyorsanız veya veri için doğrudan bir ağa bağlanamıyorsanız Giyilebilir Veri Katmanı API'sini aşağıdaki şekillerde kullanabilirsiniz.

Uzaktaki özellikleri tanıtma ve sorgulama
CapabilityClient, Wear OS ağındaki hangi düğümlerin hangi özel uygulama özelliklerini desteklediğini gösterir. Düğümler, ağa bağlı olan hem mobil hem de giyilebilir cihazları temsil eder. Özellikler, uygulamaların derleme zamanında tanımladığı veya çalışma zamanında dinamik olarak yapılandırdığı bir özelliktir.
Örneğin, bir mobil Android uygulaması video oynatma için uzaktan kumandayı desteklediğini duyurabilir. Uygulamanın giyilebilir sürümü yüklendiğinde, uygulamanın mobil sürümünün yüklü olup olmadığını ve bu özelliği destekleyip desteklemediğini kontrol etmek için CapabilityClient cihazını kullanabilir. Bu durumda giyilebilir uygulama, videoyu diğer cihazda bir mesajla kontrol etmek için oynat/duraklat düğmesini gösterebilir.
Bu durum, desteklediği giyilebilir uygulama listeleme özellikleri sayesinde tersi yönde de çalışabilir.
Mesaj gönderme
MessageClient, mesaj gönderebilir ve avuç içi cihaz medya oynatıcısını giyilebilir cihazdan kontrol etme veya giyilebilir cihazdan amaç başlatma gibi uzak prosedür çağrıları (RPC) için uygundur. Mesajlar, tek yönlü istekler veya istek ya da yanıt iletişim modeli için de idealdir.
El tipi cihaz ve giyilebilir cihaz bağlıysa sistem, mesajı teslim edilmek üzere sıraya alır ve başarılı bir sonuç kodu döndürür. Cihazlar bağlı değilse bir hata döndürülür. Sonuç kodu alındıktan sonra cihazların bağlantısı kesilebileceği için başarılı sonuç kodu, mesajın başarıyla teslim edildiğini göstermez.
Verileri aktarma
ChannelClient, verileri avuç içi cihazdan giyilebilir bir cihaza aktarabilir. ChannelClient ile şunları yapabilirsiniz:
  • DataItem nesnelerine bağlı Asset nesneleri kullanılırken otomatik senkronizasyon sağlanmadığında internet kullanılamadığında veri dosyalarını iki veya daha fazla bağlı cihaz arasında aktarın. ChannelClient, DataClient boyunca disk alanından tasarruf sağlar. Bu sayede, bağlı cihazlarla senkronize edilmeden önce yerel cihazda öğelerin bir kopyası oluşturulur.
  • MessageClient kullanarak gönderilemeyecek kadar büyük bir dosyayı güvenilir bir şekilde gönderin.
  • Mikrofondan ses verileri gibi akışla alınan verileri aktarın.
Verileri senkronize etme
DataClient, bileşenlerin DataItem veya Asset'a okuması ya da yazması için bir API gösterir.
DataItem, Wear OS ağındaki tüm cihazlar arasında senkronize edilir. Herhangi bir düğüme bağlı değilken veri öğeleri ayarlamak mümkündür. Bu veri öğeleri, düğümler online olduğunda senkronize edilir.
Veri öğeleri, onları oluşturan uygulamaya özeldir ve yalnızca diğer düğümlerdeki ilgili uygulama tarafından erişilebilir. Bu boyutlar genellikle küçüktür. Resimler gibi daha büyük ve kalıcı veri nesnelerinin aktarımı için Assets kullanın.
Wear OS, bir el cihazına bağlı birden fazla giyilebilir cihazı destekler. Dolayısıyla, örneğin kullanıcı avuç içi cihazına bir not kaydettiğinde bu not otomatik olarak kullanıcının tüm Wear OS cihazlarında görünür. Google'ın sunucuları, cihazlar arasında veri senkronizasyonuna yardımcı olmak için cihaz ağında bir bulut düğümü barındırır. Sistem; verileri doğrudan bağlı cihazlara, bulut düğümüne ve kablosuz bağlantı üzerinden bulut düğümüne bağlı giyilebilir cihazlara senkronize eder.

Uyarı: Öğeler, uygulamanızın yüklü olmadığı cihazlar da dahil olmak üzere mevcut tüm Wear OS cihazlara aktarılır. Büyük miktarda veriyi senkronize ediyorsanız hem avuç içi cihazlarda hem de Wear OS cihazlarda kaynak israfını önlemek için bir "alıcı" uygulamanın yüklü ve internete bağlı olup olmadığını kontrol edebilirsiniz.

Önemli veri katmanı etkinliklerini dinleme (hizmetler için)
Genişletme WearableListenerService, bir hizmetteki önemli veri katmanı etkinliklerini dinlemenize olanak tanır. Sistem, WearableListenerService öğesinin yaşam döngüsünü yönetir. Bu sayede hizmet, veri öğeleri veya mesajlar göndermesi gerektiğinde hizmete bağlanır ve hiçbir çalışma gerekli olmadığında hizmetin bağlantısını kaldırır.
Önemli veri katmanı etkinliklerini dinleme (ön plan etkinlikleri için)
Bir etkinliğe OnDataChangedListener uygulamak, bir etkinlik ön plandayken önemli veri katmanı etkinliklerini dinlemenizi sağlar. WearableListenerService yerine bunu kullanırsanız, değişiklikleri yalnızca kullanıcı uygulamanızı etkin olarak kullandığında dinleyebilirsiniz.

Uyarı: Bu API'ler avuç içi cihazlar ve giyilebilir cihazlar arasında iletişim için tasarlanmış olduğundan bu cihazlar arasında iletişimi ayarlamak için yalnızca bu API'leri kullanabilirsiniz. Örneğin, bir iletişim kanalı oluşturmak için alt düzey yuvalar açmayı denemeyin.

Müşteri karşılaştırması

Aşağıdaki tabloda her istemci için farklı gereksinimler ve kullanım alanları gösterilmektedir.

Veri İstemcisi Mesaj İstemcisi Kanal İstemcisi
100 kb'den büyük veri boyutu Evet Hayır Evet
Şu anda bağlı olmayan düğümlere mesaj gönderebilir Evet Hayır Hayır
İletişim düzeni Paylaşılan ağ tabanlı kaynak 1:1 mesaj iletme (yanıtla) 1:1 yayın

Bağlantı

Veri Katmanı'nın iletişim için iki seçeneği vardır:

  1. Saat ile başka bir cihaz arasında Bluetooth bağlantısı kurulduğunda doğrudan veri alışverişi yapın.
  2. LTE veya kablosuz gibi kullanılabilir bir ağ üzerinden veri değişimi.
Şekil 1. Elde kullanılan ve giyilebilir cihazlardan oluşan örnek bir düğüm ağı.

Tüm Veri Katmanı istemcileri, cihazlara kullanılabilen bağlantılara bağlı olarak Bluetooth veya Google Cloud Sync kullanarak veri alışverişi yapabilir. Cloud Sync Hizmeti, Google'ın Bluetooth'un kullanılamadığı durumlarda giyilebilir cihazlar ve telefonlar arasında iletişim ve veri alışverişi için kullandığı mekanizmadır.

Güvenlik

Hem Bluetooth hem de Cloud Sync Hizmeti gibi iletişim seçenekleri uçtan uca şifrelidir.

Google Play Hizmetleri, telefon ile saat arasındaki iletişimin güvenli ve uygulamadan uygulamaya güvenli olmasını sağlamak için aşağıdaki kısıtlamaları uygular.

  • Paket adı farklı cihazlarda eşleşmelidir.
  • Paketin imzası tüm cihazlarda eşleşmelidir.

Bluetooth

Cihazlar Bluetooth aracılığıyla bağlandığında Veri Katmanı bu bağlantıyı kullanır. Bluetooth kullanılırken cihazlar arasında Google Play Hizmetleri tarafından yönetilen ve standart Bluetooth şifrelemesi kullanan tek bir şifrelenmiş kanal bulunur.

Bulut

Veri Katmanı kullanılarak iletilen verilerin bir noktada Google'a ait sunucuları kullanabileceğini varsayalım. Örneğin, DataClient, MessageClient veya ChannelClient, Bluetooth kullanılamadığında Google bulut üzerinden otomatik olarak yönlendirilir. Google Cloud üzerinden aktarılan tüm veriler uçtan uca şifrelenir.

Anahtar oluşturma ve depolama

Bulut tabanlı iletişim için uçtan uca tuşlar telefon tarafından oluşturulur ve iki cihaz Bluetooth ile bağlandığında doğrudan kol saatiyle değiştirilir. Bu işlem, cihaz kurulumu sırasında gerçekleşir. Google'a ait sunucular hiçbir noktada bu anahtarları almaz.

Uçtan uca anahtar oluşturma işlemi tamamlanana kadar Google'a ait sunucular üzerinden iletişim kurulamaz. Anahtarlar, eşlenen tüm cihazlarda Google Play Hizmetleri'nin gizli dosya depolama alanında saklanır.

Cihaz yedeği

Anahtarlar yedeklenmez ve cihazdan dışarı çıkmaz. Yeni bir telefon gibi yeni anahtarlar gerekiyorsa sistem yeni anahtarlar oluşturur ve bunları kullanıcının hâlâ sahip olduğu cihazlarla paylaşır.