Wear OS uygulamalarının telefondan bağımsız çalışmasını öneririz. Böylece kullanıcılar, Android veya iOS telefona erişmeden kol saatinde görevleri tamamlayabilir. Kol saati uygulamanızın telefon etkileşimi gerektirmesi durumunda Wear OS uygulamanızı bağımsız olmayan olarak işaretlemeniz ve kullanıcının telefon uygulamasını kullanabildiğinden emin olmak için gerekli adımları atmanız gerekir.
Uygulamanızı planlama
Aynı uygulama listelemesi altında her kullanıcının cihaz yapılandırması için optimize edilmiş Android Paket Kitleri (APK'lar) otomatik olarak oluşturmak üzere Android App Bundle'ı kullanabilirsiniz. Bu sayede kullanıcılar, uygulamanızı çalıştırmak için yalnızca gereken kod ve kaynakları indirebilir.
Uygulamanızı Google Play Store üzerinden dağıtılacak şekilde ayarlama hakkında bilgi edinmek için Wear OS uygulamalarını paketleme ve dağıtma başlıklı makaleyi ve Android App Bundles'ı kullanmaya başlama kılavuzunu inceleyin.
Yeni uygulamalar için hedef API düzeyi 34 veya daha yüksek olmalıdır. Daha fazla bilgi için Google Play'in hedef API düzeyi şartını karşılama başlıklı makaleyi inceleyin. Uygulamanızın en yeni platform sürümünde iyi çalıştığından emin olmak için targetSdkVersion değerini API düzeyi 30 (Wear OS 3) olarak 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 senkronizasyon başlıklı makaleyi inceleyin.
Bir uygulamayı Wear OS uygulaması olarak tanımlama
Uygulamanızın Android manifest dosyasında
<uses-feature> etiketini tanımlamanız gerekir.
Bunun bir kol saati uygulaması olduğunu belirtmek için aşağıdakine benzer bir giriş ekleyin:
<uses-feature android:name="android.hardware.type.watch" />
Bir uygulamayı bağımsız veya bağımsız olmayan olarak tanımlama
Bir kol saati uygulaması bağımsız veya bağımsız olmayan olarak kabul edilir:
- Bağımsız: Temel özellikler için telefon uygulaması gerektirmeyen, tamamen bağımsız bir uygulama. "Telefonda aç" istemleri kabul edilebilir olsa da uygulama, bağlı bir telefona ihtiyaç duymadan kullanıcılara bir uygulama işlevini tamamlamaları için alternatif yollar (ör. kısa bağlantı veya QR kodu) sunmalıdır.
- Bağımsız olmayan: Temel özellikler için telefonda veya başka bir cihazda uygulama gerektiren bağımlı uygulama. Bu seçenek, uygulamaların kimlik doğrulama gibi temel bir uygulama işlevini tamamlamak için QR kodu veya kısa bağlantı gibi alternatif bir yöntem sağlayamadığı durumlarda en iyi seçenektir.
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 el cihazında gerekli tamamlayıcı uygulamanın olmadığını algılarsa kullanıcıyı tamamlayıcı uygulamayı yüklemeye yönlendirin.
Google, uygulama sunma sırasında uygulamanın bağımsız durumunun doğruluğunu onaylar. Bu değer, Play Store'daki uygulamaların görünürlüğünü etkiler. Bu durum, elde taşınır cihazlarla eşlenmemiş Wear OS cihazlar gibi bağlantısız cihazlarda geçerlidir. Bağımsız olmayan uygulamalar ve geliştiricilerin yanlışlıkla "bağımsız" olarak belirlediği uygulamalar, bu bağlantısız cihazlardaki kullanıcılar tarafından kullanılamaz.
Wear OS uygulamanızda, uygulamanızın bağımsız mı yoksa bağımsız olmayan bir uygulama mı olduğunu bildirmek için Android manifest dosyasındaki
meta-data öğesinin com.google.android.wearable.standalone değerini ayarlayın.
Kol saati uygulamanız tamamen bağımsız bir uygulama ise com.google.android.wearable.standalone değerini true olarak ayarlayarak bunu Google Play Store'a bildirin:
<meta-data android:name="com.google.android.wearable.standalone" android:value="true" />
Bağımsız olmayan ve temel özellikler için başka bir uygulamaya bağlı olan bir kol saati uygulamanız varsa com.google.android.wearable.standalone değerini false olarak ayarlayın. Bu, kol saati uygulamasının başka bir cihaz gerektirdiği anlamına gelir ancak Google Play Store'daki uygulama tanıtımınızı etkilemez.
Not:
com.google.android.wearable.standalone değeri
false olsa bile kol saati
uygulaması, telefon uygulaması yüklenmeden önce yüklenebilir.
Bu nedenle, saat uygulamanız bu sayfada açıklandığı gibi eşlenmiş telefonda gerekli telefon uygulamasının olmadığını algılarsa kullanıcıya telefon uygulamasını yüklemesini istemelidir.
Paylaşılan kod ve veri depolama
Kod, Wear OS uygulaması ile telefon uygulaması arasında paylaşılabilir. Örneğin, ağ oluşturmayla ilgili ortak kod, paylaşılan bir kitaplıkta olabilir.
İsteğe bağlı olarak, form faktörüne özgü kod ayrı bir modülde olabilir.
Verileri telefonda olduğu gibi yerel olarak depolamak için standart Android depolama API'lerini kullanabilirsiniz. Anahtar/değer çiftlerini ve türü belirlenmiş nesneleri depolamak için DataStore'u veya Room kalıcılık kitaplığını kullanabilirsiniz.
Uygulamanızı başka bir cihazda algılama
Saat uygulamanız ve ilgili telefon uygulamanız, diğer uygulamanın kullanılabilir olup olmadığını algılayabilir.
Telefon ve saat uygulamalarınız, eşlenen bir cihaza varlıklarını bildirmek için
CapabilityClient kullanabilir. Bu işlemi statik veya dinamik olarak yapabilirler.
Bir uygulama, kullanıcının Wear OS ağındaki bir düğümde (ör. telefonda, eşlenmiş kol saatinde veya bulutta) bulunduğunda CapabilityClient, diğer uygulamaların bu uygulamayı algılamasına olanak tanır. Daha fazla bilgi için
Reklamcılık özellikleri başlıklı makaleyi inceleyin.
Uygulamalarınızdan biri diğerini algılayamıyorsa kullanıcıdan etkilenen cihazda Play Store girişini açmasını isteyebilirsiniz. Bu, düzgün çalışmak için eşlenmiş telefon uygulamasının varlığını gerektiren saat uygulamaları için bir çözümdür.
Play Store'un cihazda kullanılabilir olup olmadığını kontrol etmeniz gerekir. Play Store, iPhone gibi tüm telefonlarda desteklenmez.
Aşağıdaki bölümlerde iki senaryoyla ilgili en iyi uygulamalar açıklanmaktadır:
- Bağımsız kol saati uygulamanızın telefon uygulamanıza ihtiyacı var.
- Telefon uygulamanızın bağımsız kol saati uygulamanıza ihtiyacı var.
Datalayer yardımcıları örneğini de inceleyebilirsiniz. Bu örnekte,
Horologist'in bir parçası olan
Datalayer yardımcıları kitaplıklarının nasıl kullanılacağı gösterilmektedir. Bu yardımcılar, elde tutulan bir 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 bakın.
Bu referans,
PhoneTypeHelper sınıfı hakkında da bilgi içerir. Bu sınıf, Wear OS uygulamanızın eşlik eden telefonun Android mi yoksa iOS cihaz mı olduğunu kontrol etmesine olanak tanıyan bir
getPhoneDeviceType() yöntemi içerir.
Uygulamalarınızı algılamak için özellik adlarını belirtin
Her cihaz türüne (kol saati veya telefon) 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üzdeki 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üzdeki wear.xml dosyası, yetenek adı için aşağıdaki gibi farklı bir değer içeriyor:
<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 başlıklı makaleyi inceleyin.
Uygulama algılama ve kol saatinden URL açma
Kol saati uygulamanız, kullanıcının eşlenmiş telefonunda telefon uygulamanızın olup olmadığını algılayabilir. Şu adımları uygulayın:
-
Telefon uygulamanızın eşlenmiş telefonda yüklü olup olmadığını kontrol etmek için
CapabilityClientsimgesini kullanın. Daha fazla bilgi için GitHub'daki 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. -
If
PhoneDeviceType.DEVICE_TYPE_ANDROIDis returned, the phone is an Android phone. AramaRemoteActivityHelper.startRemoteActivity()seçeneğini kullanarak Wear OS cihazda Play Store'u açın. Telefon uygulamanızın market URI'sini kullanın. Bu URI, Wear uygulamanızın URI'sinden farklı olabilir. Örneğin, aşağıdaki gibi bir Market URI'si kullanın:market://details?id=com.example.android.wearable.wear.finddevices. -
PhoneDeviceType.DEVICE_TYPE_IOSdeğeri döndürülürse telefonda Play Store yoktur ve telefon iOS'tir. Wear OS cihazdaRemoteActivityHelper.startRemoteActivity()tuşuna basarak iPhone'da App Store'u açın. Uygulamanızın iTunes URL'sini (ör.https://itunes.apple.com/us/app/yourappname) belirtebilirsiniz.Wear OS'te, telefon uygulamanızın bir iOS cihaza yüklenip yüklenmediğini programatik olarak belirleyemezsiniz. En iyi uygulama olarak, kullanıcının App Store'un açılmasını manuel olarak tetikleyebileceği bir mekanizma sağlayın.
Not: Daha önce açıklanan RemoteActivityHelper API'sini kullanarak herhangi bir URL'nin telefonda saatten açılacağını ve telefon uygulaması gerekmeyeceğini belirtebilirsiniz.
Eşlenen telefonun türünü algılamayla ilgili ayrıntılar
Aşağıda, saatin eşlendiği telefonun türünü kontrol etmek için getPhoneDeviceType() yöntemini kullanan bir snippet verilmiştir:
var phoneDeviceType: Int = PhoneTypeHelper.getPhoneDeviceType(this)
getPhoneDeviceType() yöntemi tarafından döndürülen değer aşağıdakilerden biridir:
| Döndürülen değer | Açıklama |
|---|---|
DEVICE_TYPE_ANDROID
|
Eşlenmiş telefon bir Android cihaz olmalıdır. |
DEVICE_TYPE_IOS
|
Yardımcı telefon bir iOS cihaz olmalıdır. |
DEVICE_TYPE_UNKNOWN
|
Eşlenmiş telefon bilinmeyen bir cihazdır. |
DEVICE_TYPE_ERROR
|
Eşlenen telefonun türü belirlenirken bir hata oluştu. Daha sonra tekrar kontrol edilmelidir. |
Android telefonda uygulama algılamayı başlatma
Android telefonunuz, kullanıcının Wear OS cihazlarında kol saati uygulamanızın olup olmadığını algılayabilir. Şu adımları uygulayın:
-
NodeClientsimgesini kullanarak kullanıcının telefonuna bağlı tüm kol saatlerini bulun. Daha fazla bilgi için GitHub'daki Datalayer yardımcıları örneğine bakın. -
CapabilityClientsimgesini kullanarak kullanıcının hangi kol saatinde uygulamanızın yüklü olduğunu kontrol edin. -
Uygulamanız kullanıcının tüm kol saatlerine yüklenmemişse kullanıcının
RemoteActivityHelper.startRemoteActivity()yöntemini kullanarak telefondan kalan Wear OS cihazlarında Play Store'u açmasına izin verin. Wear OS uygulamasının market URI'sini kullanın. Bu URI, telefon uygulamanızın URI'sinden farklı olabilir. Örneğin, aşağıdaki gibi bir market URI'si kullanın:market://details?id=com.example.android.wearable.wear.finddevices.
iPhone'larla eşlenen kol saatlerinin konum verileri
iPhone'larla eşlenmiş saatlerde, saatte 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 başlıklı makaleyi inceleyin.
FLP, konum verileri için varsa eşlenmiş telefonu kullanır.
Yalnızca gerekli verileri alın
Genel olarak internetten veri alırken yalnızca gerekli verileri alın. Aksi takdirde gereksiz gecikmeye, bellek ve pil kullanımına neden olabilirsiniz.
Bir kol saati Bluetooth LE bağlantısı üzerinden bağlandığında, uygulamanız kol saatine bağlı olarak saniyede yalnızca 4 kilobayt bant genişliğine erişebilir. Bu nedenle, aşağıdaki adımların uygulanması önerilir:
- Yalnızca bir telefon uygulaması için gerekli olan ek veriler açısından ağ isteklerinizi ve yanıtlarınızı denetleyin.
- Büyük resimleri ağ üzerinden saate göndermeden önce küçültün.
Yüksek bant genişliğine sahip bir ağın gerektiği durumlarda Yüksek bant genişliğine sahip ağ erişimi başlıklı makaleyi inceleyin.
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österir.