Wear OS uygulamalarının telefondan bağımsız olarak çalışmasını öneririz. Böylece kullanıcılar, Android veya iOS telefona erişmeden saatinde görevleri tamamlayabilir. Saat uygulamanız telefon etkileşimi gerektiriyorsa Wear OS uygulamanızı bağımsız değil olarak işaretlemeniz ve kullanıcının telefon uygulamasına sahip olduğundan emin olmak için gerekli adımları uygulamanız gerekir.
Uygulamanızı planlayın
Android App Bundle'ı kullanarak aynı uygulama listesi altında her kullanıcının cihaz yapılandırması için optimize edilmiş Android Package Kit'leri (APK'lar) otomatik olarak oluşturabilirsiniz. Böylece, kullanıcılar yalnızca uygulamanızı çalıştırmak için ihtiyaç duydukları kodu ve kaynakları indirebilir.
Uygulamanızı Google Play Store'da dağıtılmak üzere ayarlama hakkında bilgi edinmek için Wear OS Uygulamalarını paketleme ve dağıtma ile Android App Bundle'ı kullanmaya başlama kılavuzumuzu inceleyin.
Yeni uygulamalar için hedef API düzeyi 30 veya daha yüksek olmalıdır. Daha fazla bilgi için Google Play'in hedef API düzeyi şartını karşılama konusuna bakın. Uygulamanızın en son platform sürümünde iyi bir şekilde çalıştığından emin olmak için targetSdkVersion
değerini API düzeyi 30'a (Wear OS 3) ayarlayın.
Ağ istekleri ve yüksek bant genişliğine sahip ağ erişimi hakkında bilgi edinmek için Wear OS'te ağ erişimi ve senkronizasyonu başlıklı makaleyi inceleyin.
Bir uygulamayı Wear OS uygulaması olarak tanımlama
<uses-feature>
etiketini, uygulamanızın Android manifest dosyasında tanımlamalısınız.
Bunun bir saat uygulaması olduğunu belirtmek için aşağıdaki gibi bir giriş ekleyin:
<manifest> ... <uses-feature android:name="android.hardware.type.watch" /> ... </manifest>
Uygulamaları bağımsız veya bağımsız değil olarak tanımlama
Saat uygulamaları bağımsız veya bağımsız değildir:
- Bağımsız: Temel özellikler için bir telefon uygulaması gerektirmeyen, tamamen bağımsız bir uygulama. "Telefonda aç" istemleri kabul edilebilir olsa da uygulama, kullanıcıların uygulama işlevini tamamlamaları için kısa bağlantı veya QR kodu gibi bağlı bir telefona bağlı olmadan alternatif yöntemler sağlamalıdır.
- Bağımsız olmayan: Temel özellikleri için telefon veya başka bir cihazdaki uygulamanın kullanılmasını gerektiren bağımlı bir uygulama. Bu seçenek, kimlik doğrulama gibi temel uygulama işlevini tamamlamak için QR kodu veya kısa bağlantı gibi alternatif yöntemleri kolayca sağlayamadığında en uygun uygulamalar için idealdir.
Not: Bağımsız olmayan uygulamalarda bile kullanıcılar Wear OS uygulamasını mobil uygulamadan önce yükleyebilir. Bu nedenle Wear OS uygulamanız, yakındaki bir avuç içi cihazda gerekli tamamlayıcı uygulamanın bulunmadığını algılarsa kullanıcıdan tamamlayıcı uygulamayı yüklemesini isteyin.
Google, uygulama sunma sırasında bir uygulamanın bağımsız durumunun doğruluğunu doğrular. Bu değer, avuç içi cihazlarla eşlenmemiş Wear OS cihazlar gibi tethering bağlantısı olmayan cihazlardaki Play Store'daki uygulamaların görünürlüğünü etkiler. Bağımsız olmayan uygulamalar ve geliştiricilerin hatalı bir şekilde "bağımsız" olarak tanımladığı uygulamalar, bu bağlı olmayan cihazlardaki kullanıcılara sunulmaz.
Wear OS uygulamanızda, uygulamanızın bağımsız olup olmadığını belirtmek için Android manifest dosyasında
meta-data
öğesi com.google.android.wearable.standalone
değerini ayarlayın.
Saat uygulamanız tamamen bağımsız ve bağımsız bir uygulamaysa com.google.android.wearable.standalone
değerini true
olarak ayarlayarak bunu Google Play Store'a bildirin:
<application> ... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" /> ... </application>
Saat uygulamanız bağımsız değilse ve temel özellikleri açısından başka bir uygulamayı kullanıyorsa com.google.android.wearable.standalone
değerini false
olarak ayarlayın. Bu simge, saat uygulaması için başka bir cihaz gerektiğini ancak Google Play Store'daki uygulamanızın tanıtımını etkilemediğini gösterir.
Not: com.google.android.wearable.standalone
değeri false
olsa bile saat uygulaması, telefon uygulaması yüklenmeden önce yüklenebilir.
Bu nedenle, saat uygulamanız bu sayfada açıklandığı gibi, tamamlayıcı telefonda gerekli telefon uygulamasının eksik olduğunu algılarsa kullanıcıdan telefon uygulamasını yüklemesini isteyin.
Paylaşılan kod ve veri depolama
Kod, Wear OS uygulaması ile telefon uygulaması arasında paylaşılabilir. Örneğin, ağ iletişimi için ortak kod paylaşılan bir kitaplıkta yer alabilir.
İsteğe bağlı olarak, bir form faktörüne özel kod ayrı bir modülde olabilir.
Verileri yerel olarak depolamak için telefonda olduğu gibi standart Android depolama API'lerini kullanabilirsiniz. Örneğin, SharedPreferences API'lerini veya Oda kalıcılık kitaplığını kullanabilirsiniz.
Uygulamanızı başka bir cihazda algılama
Saat uygulamanız ve ilgili telefon uygulaması, diğer uygulamanın kullanılabilir olup olmadığını algılayabilir.
Telefon ve saat uygulamalarınız, eşlenen bir cihaza varlıklarını tanıtmak için
CapabilityClient
kullanabilir. Bunu statik veya dinamik olarak yapabilirler.
Bir uygulama, kullanıcının Wear OS ağındaki bir düğümde (ör. telefon, eşlenmiş saat veya bulut) bulunduğu zaman CapabilityClient
diğer uygulamaların bunu algılamasına izin verir. Daha fazla bilgi için
Reklam verme özellikleri bölümüne bakın.
Uygulamalarınızdan biri diğerini algılayamazsa kullanıcıdan etkilenen cihazda Play Store girişini açmasını isteyebilirsiniz. Bu çözüm, düzgün çalışması için tamamlayıcı telefon uygulamasının bulunmasını gerektiren saat uygulamalarına yönelik bir çözümdür.
Tüm telefonlar (ör. iPhone'lar) Play Store'u desteklemediğinden Play Store'un cihazda kullanılıp kullanılamadığını kontrol etmeniz gerekir.
Aşağıdaki bölümlerde, iki senaryo için en iyi uygulamalar açıklanmaktadır:
- Bağımsız saat uygulamanız için telefon uygulamanız gerekir.
- Telefon uygulamanız için bağımsız saat uygulamanız gerekir.
Horologist kapsamındaki
Datalayer yardımcı kitaplıklarının nasıl kullanılacağını gösteren
Datalayer yardımcıları örneğini de inceleyebilirsiniz. Bu yardımcılar, avuç içi cihaz ile Wear OS cihaz arasındaki bağlantıyı izlemenize olanak tanır.
Aşağıdaki bölümde açıklanan sınıflar hakkında daha fazla bilgi için Wear OS API referansına göz atın.
Bu referans, Wear OS uygulamanızın, tamamlayıcı telefonun Android mi yoksa iOS cihaz olup olmadığını kontrol etmesini sağlayan bir
getPhoneDeviceType()
yöntemi içeren
PhoneTypeHelper
sınıfıyla ilgili bilgileri de içerir.
Uygulamalarınızı algılamaya yönelik özellik adlarını belirtin
Saat veya telefon gibi her cihaz türüne karşılık gelen uygulama için res/values/wear.xml
dosyasında özellik adı olarak benzersiz bir dize belirtin.
Örneğin, mobil modülünüzde wear.xml
dosyası şunları içerebilir:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
Wear OS modülünüzde, wear.xml
dosyası özellik adı için aşağıdakiler gibi farklı bir değer içerir:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
Daha fazla bilgi için Reklam verme özellikleri bölümüne bakın.
Uygulama algılama ve kol saatinden URL açma
Saat uygulamanız, kullanıcının tamamlayıcı telefonunda telefon uygulamanızın olup olmadığını algılayabilir. Şu adımları uygulayın:
-
Telefon uygulamanızın eşlenen telefonda yüklü olup olmadığını kontrol etmek için
CapabilityClient
özelliğini kullanın. Daha fazla bilgi için GitHub'da Datalayer yardımcıları örneğine bakın. -
Telefon uygulamanız telefonda yüklü değilse telefonun türünü kontrol etmek için
PhoneDeviceType.getPhoneDeviceType()
yöntemini kullanın. Ayrıntılar için aşağıdaki bölüme bakın. -
PhoneDeviceType.DEVICE_TYPE_ANDROID
döndürülürse telefon, Android telefondur. Telefonunuzda Play Store'u açmak için Wear OS cihazdaRemoteActivityHelper.startRemoteActivity()
numaralı telefonu arayın. Telefon uygulamanızın pazar URI'sini kullanın. Bu URI, Wear uygulamanızın URI'sından farklı olabilir. Örneğin, şunun gibi bir pazar URI'si kullanın:market://details?id=com.example.android.wearable.wear.finddevices
. -
PhoneDeviceType.DEVICE_TYPE_IOS
döndürülürse telefon, Play Store bulunmayan bir iOS telefondur. Wear OS cihazdaRemoteActivityHelper.startRemoteActivity()
numaralı telefonu arayarak iPhone'da App Store'u açın. Uygulamanızın iTunes URL'sini belirtebilirsiniz (örneğin,https://itunes.apple.com/us/app/yourappname
).Wear OS'ten, telefon uygulamanızın bir iOS cihazda yüklü olup olmadığını programlı bir şekilde belirleyemezsiniz. En iyi uygulama olarak kullanıcıya App Store'un açılmasını manuel olarak tetikleyecek bir mekanizma sağlayın.
Not: Telefonda herhangi bir URL'nin saatten açılacağını ve herhangi bir telefon uygulamasının gerekmediğini belirtmek için daha önce açıklanan RemoteActivityHelper
API'sini kullanın.
Eşlenen telefonun türünü algılamaya ilişkin ayrıntılar
Saatin eşlendiği telefonun türünü kontrol etmek için getPhoneDeviceType()
yöntemini kullanan bir snippet'i burada görebilirsiniz:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
getPhoneDeviceType()
yöntemi tarafından döndürülen değer şunlardan biridir:
Döndürülen değer | Açıklama |
---|---|
DEVICE_TYPE_ANDROID
|
Tamamlayıcı telefon bir Android cihazdır. |
DEVICE_TYPE_IOS
|
Tamamlayıcı telefon bir iOS cihazdır. |
DEVICE_TYPE_UNKNOWN
|
Tamamlayıcı telefon bilinmeyen bir cihaz. |
DEVICE_TYPE_ERROR
|
Eşlenen telefonun türü belirlenirken hata oluştu. Daha sonra başka bir kontrol yapılmalıdır. |
Android telefondan başlatılan uygulama algılama özelliği
Android telefonunuz, kullanıcıların Wear OS cihazlarında saat uygulamanızın yüklü olup olmadığını algılayabilir. Şu adımları uygulayın:
-
NodeClient
kullanarak kullanıcının telefonuna bağlı tüm kol saatlerini bulun. Daha fazla bilgi için GitHub'da Datalayer yardımcıları örneğine bakın. -
CapabilityClient
yardımıyla uygulamanızın hangi kullanıcının kol saatinde yüklü olduğunu kontrol edin. -
Uygulamanız kullanıcıların tüm kol saatlerinde yüklü değilse
RemoteActivityHelper.startRemoteActivity()
yöntemini kullanarak kullanıcının telefondan diğer Wear OS cihazlarında Play Store'u açmasına izin verin. Wear OS uygulaması için pazar URI'sını kullanın. Bu, telefon uygulamanızın URI'sından farklı olabilir. Örneğin,market://details?id=com.example.android.wearable.wear.finddevices
gibi bir pazar URI'si kullanın.
iPhone'larla eşlenmiş kol saatleri için konum verileri
iPhone'larla eşlenmiş kol saatlerinde, saatteki konum verilerini almak için Çok Kaynaklı Konum Sağlayıcı'yı (FLP) kullanın. Daha fazla bilgi için Wear OS'te konumu algılama konusuna bakın.
Tamamlayıcı telefon kullanılabiliyorsa FLP, konum verileri için tamamlayıcı telefonu kullanır.
Yalnızca gerekli verileri edinin
Genellikle, internetten veri alırken yalnızca gerekli verileri alırsınız. Aksi takdirde, gereksiz gecikmelere, bellek kullanımına ve pil kullanımına yol açabilir.
Bir saat Bluetooth LE bağlantısı üzerinden bağlandığında uygulamanızın saate bağlı olarak saniyede yalnızca 4 kilobaytlık bant genişliğine erişimi olabilir. Bu nedenle, aşağıdaki adımları uygulamanız önerilir:
- Yalnızca telefon uygulaması için gereken ek veriler için ağ isteklerinizi ve yanıtlarınızı denetleyin.
- Büyük resimleri ağ üzerinden saatinize göndermeden önce küçültün.
Yüksek bant genişliğine sahip ağın gerekli olduğu durumlar için Yüksek bant genişliğinde ağ erişimi bölümüne bakın.
Ek kod örnekleri
Datalayer yardımcıları örneği, bu sayfada ele alınan API'lerin kullanımını daha ayrıntılı bir şekilde göstermektedir.