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:
- Google Play Hizmetleri'nin en son sürümü.
- Wear OS cihaz veya Wear OS emülatö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şenlerinDataItem
veyaAsset
'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:
- Saat ile başka bir cihaz arasında Bluetooth bağlantısı kurulduğunda doğrudan veri alışverişi yapın.
- LTE veya kablosuz gibi kullanılabilir bir ağ üzerinden veri değişimi.
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.