Wear OS by Google sayesinde kol saati, herhangi bir cihaza ihtiyaç duymadan ağla doğrudan iletişim kurabilir. Android veya iOS telefona erişebilir. Bir veri katmanı bağlamak için Veri Katmanı API'sini Wear OS uygulamasından bir ağa bağlayın. Bunun yerine, bu makaledeki yönergeleri ve adımları uygulayın: rehberini inceleyin.
Ağ erişimi
Wear OS uygulamaları ağ istekleri yapabilir. Kol saatinde Bluetooth olduğunda saatin ağ trafiği genellikle akıllı telefon üzerinden telefon.
Bir telefon kullanılamadığında şuna bağlı olarak kablosuz ve hücresel ağlar kullanılır: için de geçerli. Ağlar arasındaki geçişleri Wear OS platformu yönetir.
HTTP, TCP ve UDP gibi protokolleri kullanabilirsiniz. Ancak
CookieManager
sınıfı dahil olmak üzere android.webkit
API'leri,
kullanılabilir. Çerezleri, isteklerdeki başlıkları okuyup yazarak kullanabilirsiniz.
tıklayın.
Düzenli olarak yoklama da dahil olmak üzere eşzamansız istekler için WorkManager
aracını kullanın.
sağlar.
Belirli ağ türlerine bağlanmanız gerekiyorsa Okuma ağı durum.
Yüksek bant genişliğinde ağ erişimi
Wear OS platformu, aşağıdakileri sağlamak amacıyla ağ bağlantısını yönetir: en iyi genel kullanıcı deneyimini sunmaktır. Platform, varsayılan etkin ağı şu ölçüte göre seçer: iki ihtiyacı dengelemek: uzun pil ömrü ve ağ bant genişliği.
Pil korumaya öncelik verildiğinde, etkin ağda büyük dosyaları taşımak veya akışla aktarma gibi ağ görevleri için yeterli bant genişliği medya
Bu bölümde, aşağıdaki işlemler için ConnectivityManager
sınıfının kullanılmasıyla ilgili yol gösterici bilgiler verilmektedir:
uygulamanızın ihtiyaç duyduğu ağ bant genişliğine sahip olmasını sağlamaya yardımcı olur. Genel
ağ kaynakları üzerinde ayrıntılı denetim hakkında bilgi edinmek için yönetme
ağ kullanımı bölümünde bulabilirsiniz.
Kablosuz bağlantı isteyin
Taşıma gibi yüksek bant genişliğinde ağ erişimi gerektiren kullanım alanları için büyük dosyalar veya medya akışı gerçekleştiriyorsanız, yüksek bant genişliğine sahip bağlantı isteğinde bulunun. taşımayı kolaylaştırır. Bu, aşağıdaki örnekte gösterilmektedir:
Kotlin
val callback = object : ConnectivityManager.NetworkCallback() { override fun onAvailable(network: Network) { super.onAvailable(network) // The Wi-Fi network has been acquired. Bind it to use this network by default. connectivityManager.bindProcessToNetwork(network) } override fun onLost(network: Network) { super.onLost(network) // Called when a network disconnects or otherwise no longer satisfies this request or callback. } } connectivityManager.requestNetwork( NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback )
Java
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() { public void onAvailable(Network network) { super.onAvailable(network); // The Wi-Fi network has been acquired. Bind it to use this network by default. connectivityManager.bindProcessToNetwork(network); } public void onLost(Network network) { super.onLost(network); // Called when a network disconnects or otherwise no longer satisfies this request or callback. } }; connectivityManager.requestNetwork( new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback );
Saatin kablosuz bağlantısı veya
hücresel radyo, pili korumak için kapalı olabilir. Kol saati bir cihaza bağlanamıyorsa
ağda, NetworkCallback
örneğinizin onAvailable()
yöntemi
çağrıldı.
onAvailable()
çağrıldıktan sonra, cihaz
NetworkCallback
serbest bırakılana kadar kablosuz ağa bağlı kalır. Pil ömrünü korumak için
artık bir
Kablosuz ağ.
Kotlin
connectivityManager.bindProcessToNetwork(null) connectivityManager.unregisterNetworkCallback(callback)
Java
connectivityManager.bindProcessToNetwork(null); connectivityManager.unregisterNetworkCallback(callback);
Kablosuz ayarları etkinliğini başlat
Kablosuz ağ isteğinde bulunulurken sistem, kayıtlı bir ağa bağlanmaya çalışır
olup olmadığını kontrol edin. Kayıtlı bir kablosuz ağ yoksa
NetworkCallback
örneğinizin onAvailable
geri çağırma yöntemi çağrılamıyor.
Ağ isteğini zaman aşımına uğratmak için bir Handler
kullanıyorsanız
kullanıcının zaman aşımı oluştuğunda kablosuz ağ eklemesini sağlayın. Kullanıcıyı doğrudan
Aşağıdaki amacı kullanarak kablosuz ağ ekleme etkinliği:
Kotlin
context.startActivity(Intent("com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS"))
Java
context.startActivity(new Intent("com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS"));
Ayar etkinliğini başlatmak için uygulamanızda CHANGE_WIFI_STATE
olmalıdır
izni gerekir.
Kullanıcı arayüzü ile ilgili dikkat edilmesi gereken noktalar
Uygulamanız yüksek bant genişliği için yeni bir kablosuz ağa bağlanmayı gerektiriyorsa işlemi yapmadan önce, bağlanma nedeninin kullanıcı açısından net olduğundan emin olun. Kablosuz ayarlarını başlattığınızda. Yalnızca kullanıcıdan yeni bir kablosuz ağ eklemesini isteyin daha geniş bant genişliğine sahip bir ağ. Bu durumda kullanıcının Yüksek bant genişliğinde ağ gerektirmeyen uygulama özelliklerine erişirken
Şekil 1'de bir müzik uygulaması gösterilmektedir. Uygulama, kullanıcının daha düşük bant genişliğine sahip bir ağdır ve kullanıcının yalnızca aşağıdaki durumlarda yeni bir kablosuz ağ eklemesini gerektirir: müzik indirmek veya canlı çalmak istiyorlar.
Şekil 1. Müzik indirmek için kullanılan bir müzik uygulaması akışı.
Güç ve veri kullanımı konusunda dikkat edilmesi gereken noktalar
Pil ömrünü korumak ve mobil veri kullanımını en aza indirmek için analiz raporlama veya günlük toplama gibi kritik olmayan ağ görevleri Wear OS cihaz tekrar bir Bluetooth veya kablosuz bağlantı kurana kadar kullanın.
Bulut mesajlaşma
Bildirim göndermek için doğrudan Firebase Cloud Messaging (FCM) uygulamasını kullanın.
Wear OS'e özgü ağ erişimi veya FCM API'leri yoktur. Mevcut ağa bağlanma ve bulut üzerinden mesajlaşma hakkındaki belgeleri inceleyin.
FCM, Doze ile iyi bir şekilde çalışır ve bildirim göndermenin önerilen yoludur bir telefona geçirebilir.
Bir cihaz için kayıt jetonu toplayarak FCM'den gelen mesajları sağlayın Wear OS uygulamanız çalıştığında. Ardından jetonu hedefin bir parçası olarak ekleyin . FCM, mesajları şuraya gönderir: cihaz kodu ile tanımlanır.
FCM mesajı, JavaScript Object Notation (JSON) biçimindedir ve aşağıdakilerden biri ya da her ikisi:
- Bildirim yükü: Bir kullanıcı tarafından bildirim yükü alındığında izledikten sonra veriler kullanıcıya doğrudan bildirim akışında gösterilir. Zaman Kullanıcı bildirime dokunduğunda uygulamanız başlatılır.
- Veri yükü: Yükte bir dizi özel anahtar veya değer çifti bulunduğunda. Yük, Wear OS uygulamanıza veri olarak iletilir.
Daha fazla bilgi ve yük örnekleri için FCM mesajları hakkında başlıklı makaleye bakın.
Varsayılan olarak bildirimler, telefon uygulamasından kol saatine geçiş yapar. Bir bağımsız Wear OS uygulaması ve karşılık gelen telefon uygulaması, yinelenen bildirimler meydana gelebilir. Örneğin, FCM tarafından gönderilen tek bir bildirim telefon ve kol saati, her iki cihazda da bağımsız olarak gösterilebilir. Şunları yapabilirsiniz: köprü API'leri kullanarak bunu önleyebilirsiniz.
Arka plan hizmetlerini kullan
Arka plan görevlerinin doğru şekilde yürütülmesini sağlamak için Doz ve Uygulamayı Beklemeye Alma özellikleri için.
Ekran kapandığında veya yeterli uzun süre boyunca ambiyans moduna girdiğinde
Arka plan görevleri belirli süreler boyunca ertelenebilir.
Ardından cihaz uzun bir süre hareketsiz kaldığında normal Doz işlemi gerçekleşir.
İstekleri, uygulamanızın kaydedilmesini sağlayan WorkManager
API ile planlayın
kullanıma hazır.
Kısıtlamalarla planlama
İstekleri pil tasarrufu yapacak şekilde yapılandırmak için kısıtlamalar kullanabilirsiniz hayat. istekler:
Ağ iletişimi gerektiren bir istek planlayın.
NetworkType
öğesininCONNECTED
veyaUNMETERED
olduğunu belirtin.UNMETERED
büyük veri aktarımları için,CONNECTED
ise küçük veri aktarımları içindir aktarım.Şarj işlemi sırasında bir istek planlayın.
Cihaz boştayken istek planlayın. Bu, özellikle arka planda çalışma veya senkronizasyon, özellikle de arka planda çalışırken cihaz şarj oluyor.
Daha fazla bilgi için WorkManager'ın Kısıtlamaların çalışma rehberini inceleyebilirsiniz.