Wear OS uygulamalarının telefondan bağımsız olarak çalışmasını öneririz. Böylece kullanıcılar Android veya iOS telefona erişimleri olmadan kol saatinde görev yapabilirler. 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ının kullanılabilir olmasını sağlamak 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ına göre 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ı indirebilirler.
Uygulamanızı Google Play Store üzerinden dağıtılmak üzere ayarlama hakkında bilgi için Wear OS uygulamalarını paketleme ve dağıtma makalesine ve Android App Bundle'ı kullanmaya başlama kılavuzuna bakın.
Genel olarak, bir Wear OS uygulaması için minimum API düzeyi API düzeyi 25'tir (Wear OS 2.0).
Hedef API düzeyi, API düzeyi 28 veya üstü 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
düzeyini API düzeyi 30'a (Wear OS 3) ayarlayın.
Ağ istekleri ve yüksek bant genişliğinde ağ erişimi hakkında bilgi edinmek için Wear OS'te ağ erişimi ve senkronizasyon başlıklı makaleyi inceleyin.
Bir uygulamayı Wear OS uygulaması olarak tanımlama
<uses-feature>
etiketini, uygulamanızın Android manifest dosyasında tanımlamanız gerekir.
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>
Bir uygulamayı bağımsız veya bağımsız olmayan uygulama olarak tanımlama
Saat uygulaması bağımsız veya bağımsız değildir.
- Bağımsız: Kimlik doğrulama dahil olmak üzere temel özellikler için bir telefon uygulaması gerektirmeyen, tamamen bağımsız bir uygulama. Telefon uygulaması varsa yalnızca isteğe bağlı özellikler sağlanır.
- Bağımsız olmayan: Kimlik doğrulama dahil olmak üzere temel özellikler için bir telefonda veya başka bir cihazda uygulama kullanılmasını gerektiren bağımlı bir uygulama.
Wear OS uygulamanızda, uygulamanızın bağımsız veya bağımsız olmadığını belirtmek için Android manifest dosyasında
meta-data
öğesinin 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 özellikler açısından başka bir uygulamaya bağımlıysa com.google.android.wearable.standalone
değerini false
olarak ayarlayın. Bu mesaj, saat uygulaması için başka bir cihaz gerektiğini ancak Google Play Store'daki uygulama tanıtımınızı etkilemediğini gösterir.
Not: com.google.android.wearable.standalone
değeri false
olsa bile saat uygulaması, telefon uygulaması yüklenmeden önce yüklenebilir.
Dolayısıyla, saat uygulamanız
bu sayfada açıklandığı gibi, tamamlayıcı bir 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ı ve telefon uygulaması arasında paylaşılabilir. Örneğin, ağ iletişimi için ortak kod paylaşılan bir kitaplıkta olabilir.
İsteğe bağlı olarak, bir form faktörüne özel kod ayrı bir modülde olabilir.
Verileri telefonda olduğu gibi yerel olarak depolamak için 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 kol saati uygulamalarınız,
CapabilityClient
kullanarak eşlenen bir cihaza
varlıklarının reklamını yapabilir. 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 bulutta) olduğunda, CapabilityClient
diğer uygulamaların bunu algılamasına olanak tanır. Daha fazla bilgi için
Reklam özellikleri bölümünü inceleyin.
Uygulamalarınızdan biri diğerini algılayamazsa kullanıcıdan etkilenen cihazda Play Store girişini açmasını isteyebilirsiniz. Bu, düzgün çalışması için tamamlayıcı telefon uygulamalarının bulunmasını gerektiren saat uygulamalarının kullanımı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 senaryoya yönelik en iyi uygulamalar açıklanmaktadır:
- Bağımsız saat uygulamanız için telefon uygulamanız gerekir.
- Telefon uygulamanız, bağımsız saat uygulamanıza ihtiyaç duyar.
Bu işlevin gösterildiği GitHub'daki
örnek uygulamayı da inceleyebilirsiniz. Aşağıdaki bölümde açıklanan sınıflar hakkında daha fazla bilgi için Wear OS API referansı bölümüne bakın.
Bu referans, Wear OS uygulamanızın tamamlayıcı telefonun Android mi yoksa iOS cihaz mı olduğunu kontrol etmesini sağlayan
getPhoneDeviceType()
yöntemini içeren
PhoneTypeHelper
sınıfıyla ilgili bilgileri de içerir.
Uygulamalarınızı algılamak için işlev adları 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 farklı bir değer içerir. Örneğin:
<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 özellikleri bölümünü inceleyin.
Uygulama algılama ve kol saatinden URL açma
Saat uygulamanız, kullanıcının tamamlayıcı telefonunda sizin 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
kullanın. Daha fazla bilgi için GitHub'daki örnek uygulamaya göz atı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 bir Android telefondur. Wear OS cihazdaRemoteActivityHelper.startRemoteActivity()
numarasını arayarak telefonda Play Store'u açın. Telefon uygulamanızın pazar URI'sini kullanın. Bu URI, Wear uygulamanızın URI'sından farklı olabilir. Örneğin, şu 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'u bulunmayan bir iOS telefondur. Wear OS cihazdaRemoteActivityHelper.startRemoteActivity()
çağrısı yaparak iPhone'da App Store'u açın. Uygulamanızın iTunes URL'sini (ör.https://itunes.apple.com/us/app/yourappname
) belirtebilirsiniz.Telefon uygulamanızın bir iOS cihazda yüklü olup olmadığını Wear OS'ten programatik olarak 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 telefon uygulamasının gerekmediğini belirtmek için daha önce açıklanan RemoteActivityHelper
API'yi kullanın.
Eşlenen telefonun türünü algılamaya ilişkin ayrıntılar
Kol saatinin eşlendiği telefonun türünü kontrol etmek için getPhoneDeviceType()
yöntemini kullanan bir snippet'i aşağıda görebilirsiniz:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
getPhoneDeviceType()
yönteminin döndürdüğü değer aşağıdakilerden biridir:
Döndürülen değer | Description |
---|---|
DEVICE_TYPE_ANDROID
|
Tamamlayıcı telefon bir Android cihaz. |
DEVICE_TYPE_IOS
|
Tamamlayıcı telefon bir iOS cihaz. |
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ılması gerekir. |
Android telefondan başlayan uygulama algılama özelliği
Android telefonunuz kullanıcıların Wear OS cihazlarında saat uygulamanızın olup olmadığını algılayabilir. Şu adımları uygulayın:
-
NodeClient
sayesinde kullanıcının telefonuna bağlı tüm kol saatlerini bulun. Daha fazla bilgi için GitHub'daki örnek uygulamaya göz atın. -
CapabilityClient
aracını kullanarak uygulamanızın hangi kullanıcı kol saatlerinde yüklü olduğunu kontrol edin. -
Uygulamanız kullanıcının tüm saatlerinde yüklü değilse kullanıcının
RemoteActivityHelper.startRemoteActivity()
yöntemini kullanarak telefondan kalan Wear OS cihazlarda Play Store'u açmasına izin verin. Wear OS uygulaması için pazar URI'sini kullanın. Bu URI, telefon uygulamanızın URI'sından farklı olabilir. Örneğin, şu gibi bir pazar URI'si kullanın:market://details?id=com.example.android.wearable.wear.finddevices
.
iPhone'larla eşlenen kol saatleri için konum verileri
iPhone'larla eşlenen 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 bölümüne bakın.
Tamamlayıcı telefon varsa FLP, konum verileri için tamamlayıcı telefonu kullanır.
Yalnızca gerekli verileri elde etmek
Genellikle, internetten veri elde ederken yalnızca gerekli verileri elde edersiniz. Aksi takdirde, gereksiz gecikme, bellek kullanımı ve pil kullanımına neden olabilirsiniz.
Bir saat Bluetooth LE bağlantısı üzerinden bağlandığında uygulamanız saate bağlı olarak saniyede yalnızca 4 kilobaytlık bant genişliğine erişebilir. Bu nedenle, aşağıdaki adımlar önerilir:
- Yalnızca telefon uygulaması için gereken ek veriler için ağ isteklerinizi ve yanıtlarınızı denetleyin.
- Büyük resimleri bir 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
WearVerifyRemoteApp örneğinde, bu sayfada açıklanan API'lerin kullanımı daha ayrıntılı olarak gösterilmektedir.