Samodzielne i niesamodzielne aplikacje na Wear OS

Zalecamy, aby aplikacje na Wear OS działały niezależnie od telefonu, wykonywać zadania na zegarku bez dostępu do telefonu z Androidem lub iOS. Jeśli aplikacja na zegarek wymaga interakcji z telefonem, musisz oznaczyć aplikację na Wear OS jako niesamodzielną i upewnić się, że użytkownik ma dostęp do tej aplikacji.

Zaplanuj aplikację

Możesz użyć pakietu Android App Bundle aby automatycznie generować zoptymalizowane pakiety Android Package Kit (APK) dla poszczególnych konfiguracji urządzeń użytkowników w ramach tego samego aplikacji. Dzięki temu użytkownicy mogą pobrać tylko kod i zasoby, których potrzebują uruchom aplikację.

Aby uzyskać informacje o konfigurowaniu aplikacji do rozpowszechniania przez Sklepu Google Play, zobacz Pakowanie i rozpowszechnianie aplikacji na Wear OS oraz przewodnik dla początkujących Pakiety aplikacji na Androida.

W przypadku nowych aplikacji docelowy poziom interfejsu API musi wynosić 30 lub wyższy. Więcej informacji: Osiągnij docelowy interfejs API Google Play wymaganym poziomie. Ustaw parametr targetSdkVersion do poziomu interfejsu API 30 (Wear OS 3), aby zapewnić prawidłowe działanie aplikacji na najnowszej wersji platformy.

Aby uzyskać informacje o żądaniach sieciowych i dostępie do sieci o dużej przepustowości, patrz Dostęp do sieci i synchronizacja na Wear OS.

Definiowanie aplikacji jako aplikacji na Wear OS

Musisz zdefiniować tag <uses-feature> w pliku manifestu aplikacji na Androida. Aby wskazać, że aplikacja jest przeznaczona na zegarek, dodaj taki wpis:

  <manifest>
  ...
  <uses-feature android:name="android.hardware.type.watch" />
  ...
  </manifest>
  

Określanie aplikacji jako samodzielnej lub niesamodzielnej

Aplikacja na zegarek jest uważana za samodzielną lub niesamodzielną:

  • Samodzielne: całkowicie niezależna aplikacja, która nie wymaga aplikacji na telefon funkcje zabezpieczeń. Mimo że opcja „Otwórz na telefonie” prompty są dopuszczalne, aplikacja musi udostępniać umożliwiają użytkownikom wykonanie funkcji aplikacji – np. przy użyciu krótkiego linku lub kodu QR – bez względu na to, na telefonie z włączonym tetheringiem.
  • Niesamodzielna aplikacja: aplikacja zależna, która wymaga zainstalowania aplikacji na telefonie lub innym urządzeniu i najważniejszych funkcji. Ta opcja jest najlepsza w przypadku aplikacji, które nie mogą łatwo udostępniać alternatywne sposoby, takie jak kod QR lub krótki link, do wykonywania głównych funkcji aplikacji, takich jak uwierzytelnianie.

Uwaga: nawet w przypadku niesamodzielnej aplikacji użytkownicy mogą zainstalować aplikację Wear OS przed aplikacją mobilną. Jeśli więc aplikacja Wear OS wykryje, że urządzenie przenośne w pobliżu nie ma niezbędnej aplikacji towarzyszącej, prośba do użytkownika aby zainstalować aplikację towarzyszącą.

Google sprawdza poprawność stanu samodzielnej aplikacji w trakcie jej trwania wyświetlania reklam. Ta wartość wpływa na widoczność aplikacji w Sklepie Play na urządzeń niepołączonych z siecią (np. urządzeń z Wear OS, które nie są sparowane z urządzeniami mobilnymi); urządzenia. aplikacje inne niż samodzielne – oraz aplikacje nieprawidłowo opracowane przez deweloperów; określone jako „samodzielne” – są niedostępne dla użytkowników korzystających z urządzenia.

W aplikacji na Wear OS ustaw wartość com.google.android.wearable.standalone elementu meta-data w pliku manifestu Androida, aby określić, czy aplikacja jest samodzielna czy nie.

Jeśli aplikacja na zegarek jest w pełni niezależna, samodzielna, podaj do Sklepu Google Play, ustawiając wartość z com.google.android.wearable.standalone do true:

<application>
...
  <meta-data
    android:name="com.google.android.wearable.standalone"
    android:value="true" />
...
</application>

Jeśli aplikacja na zegarek nie jest samodzielna i korzysta z podstawowych funkcji innej aplikacji, ustaw wartość com.google.android.wearable.standalone na false Oznacza to, że aplikacja na zegarek wymaga innego urządzenia, ale nie mają wpływ na promocję Twojej aplikacji w Sklepie Google Play.

Uwaga: Nawet jeśli wartość com.google.android.wearable.standalone wynosi false, zegarek aplikację można zainstalować przed zainstalowaniem aplikacji na telefon. Dlatego, jeśli aplikacja na zegarek wykrywa, że powiązany telefon nie ma wymaganej aplikacji telefonicznej, jak opisano na tej stronie, wyświetlić komunikat z prośbą o zainstalowanie tej aplikacji.

Wspólny kod i przechowywanie danych

Kod może być udostępniany przez aplikację na Wear OS i aplikację na telefon. Na przykład wspólny kod do obsługi sieci może znajdować się w zasobach wspólnych.

Opcjonalnie kod dotyczącą konkretnego formatu, można umieścić w osobnym module.

Możesz użyć standardowych interfejsów API do przechowywania danych w Androidzie, aby przechowywać dane lokalnie. na telefonie. Na przykład możesz użyć atrybutu Ustawienia udostępnione interfejsów API lub Pokoju, z biblioteki trwałości.

Wykryj aplikację na innym urządzeniu

aplikacja na zegarek i powiązana aplikacja na telefon, mogą wykryć, czy druga aplikacja jest dostępna.

Aplikacje na telefonie i zegarku mogą używać CapabilityClient, aby reklamować swoją obecność do sparowanego urządzenia. Mogą to być statycznie lub dynamicznie.

Gdy aplikacja znajduje się w węźle w sieci Wear OS użytkownika, np. na telefonie, sparowanym zegarku lub w chmurze, CapabilityClient umożliwia innym aplikacje ją wykrywają. Więcej informacji: Możliwości związane z reklamami.

Jeśli jedna z aplikacji nie może wykryć drugiej, możesz o to poprosić otworzyć stronę aplikacji w Sklepie Play na urządzeniu, którego dotyczy problem. To rozwiązanie dla aplikacji na zegarek, które wymagają aplikacji towarzyszącej na telefon, aby działać prawidłowo.

Musisz sprawdzić, czy Sklep Play jest dostępny na ponieważ nie wszystkie telefony – na przykład iPhone'y – obsługują Sklep Play.

W sekcjach poniżej opisujemy sprawdzone metody postępowania w 2 scenariuszach:

  • Samodzielna aplikacja na zegarek wymaga aplikacji na telefon.
  • Aplikacja na telefon wymaga samodzielnej aplikacji na zegarek.

Możesz też zapoznać się z Przykład dla pomocników warstwy danych, który pokazuje, jak korzystać z biblioteki danych Biblioteki pomocnicze Datalayer, część Horolog. Te pomocnicze umożliwiają monitorowanie połączenia między urządzenia i urządzenia z Wear OS. Więcej informacji na temat konfiguracji dotyczące klas opisanych w kolejnej sekcji, Dokumentacja interfejsu API Wear OS. Zawiera ono również informacje o PhoneTypeHelper, która zawiera . getPhoneDeviceType(), która pozwala Aplikacja na Wear OS sprawdza, czy powiązany telefon to urządzenie z Androidem czy z iOS.

Podaj nazwy możliwości wykrywania aplikacji

W przypadku aplikacji odpowiadającej każdemu typowi urządzenia (zegarkowi lub telefonowi), określ niepowtarzalny ciąg nazwy funkcji w polu res/values/wear.xml.

Na przykład w module mobilnym plik wear.xml mogą obejmować takie elementy:

<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>

W module Wear OS plik wear.xml zawiera mają różne wartości w nazwie możliwości, na przykład:

<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>

Więcej informacji można znaleźć w sekcji Możliwości związane z reklamami.

Wykrywanie aplikacji i otwieranie adresu URL na zegarku

Aplikacja na zegarek może wykryć, czy powiązany telefon użytkownika ma Telefon. Aby to zrobić:

  1. Użyj CapabilityClient, aby sprawdzić, czy aplikacja na telefon jest zainstalowana na sparowanym telefonie. Więcej informacji: Przykład z pomocy Asystenta Datalayer w GitHubie.
  2. Jeśli na telefonie nie masz zainstalowanej aplikacji, użyj PhoneDeviceType.getPhoneDeviceType() do sprawdzić typ telefonu. Więcej informacji znajdziesz w następnej sekcji.
  3. Jeśli PhoneDeviceType.DEVICE_TYPE_ANDROID jest telefon z Androidem. Zadzwoń do nas RemoteActivityHelper.startRemoteActivity() na urządzeniu z Wear OS, aby otwórz Sklep Play na telefonie. Użyj identyfikatora URI telefonu na rynku który może być inny niż identyfikator URI aplikacji na Wear. Na przykład użyj atrybutu identyfikator URI rynku, na przykład: market://details?id=com.example.android.wearable.wear.finddevices
  4. Jeśli PhoneDeviceType.DEVICE_TYPE_IOS oznacza to, że telefon jest telefonem z iOS i nie ma aplikacji Play. Sklep dostępny. Otwórz App Store na iPhonie dzwoniąc pod numer RemoteActivityHelper.startRemoteActivity() na urządzeniu Wear Urządzenie z systemem operacyjnym. Możesz podać URL swojej aplikacji w iTunes, na przykład https://itunes.apple.com/us/app/yourappname

    W Wear OS nie można automatycznie określić, aplikacja Telefon jest zainstalowana na urządzeniu z iOS. Zalecamy przesłanie formularza do ręcznego aktywowania tagu otwórz App Store.

Uwaga: użyj interfejsu API RemoteActivityHelper opisanego wcześniej w określić, że każdy URL otwierany na telefonie z zegarka, i że nie jest potrzebna aplikacja do obsługi telefonu.

Szczegóły dotyczące wykrywania typu sparowanego telefonu

Oto fragment kodu, który używa metody getPhoneDeviceType() do: Sprawdź typ telefonu, z którym zegarek jest sparowany:

Kotlin

var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)

Java

int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);

Wartość zwrócona przez funkcję getPhoneDeviceType() jest jedną z tych wartości:

Zwracana wartość Opis
DEVICE_TYPE_ANDROID Dodatkowy telefon to urządzenie z Androidem.
DEVICE_TYPE_IOS Dodatkowy telefon to urządzenie z iOS.
DEVICE_TYPE_UNKNOWN Dodatkowy telefon to nieznane urządzenie.
DEVICE_TYPE_ERROR Wystąpił błąd podczas określania typu sparowanego telefonu. jeszcze jedna kontrola należy podjąć się później.

Wykrywanie aplikacji na telefonie z Androidem

Telefon z Androidem może wykryć, czy urządzenia z Wear OS użytkownika mają w aplikacji na zegarek. Aby to zrobić:

  1. Korzystanie z NodeClient, znajdź wszystkie zegarki połączone z kontem użytkownika telefonu. Więcej informacji: Przykład z pomocy Asystenta Datalayer w GitHubie.
  2. Korzystanie z CapabilityClient, sprawdź, który z zegarków użytkownika zainstalowanej aplikacji.
  3. Jeśli Twoja aplikacja nie jest zainstalowana na wszystkich zegarkach użytkownika, zezwól mu otwórz Sklep Play na pozostałych urządzeniach z Wear OS za pomocą telefonu, metodę RemoteActivityHelper.startRemoteActivity(). Użyj identyfikatora URI rynkowego aplikacji na Wear OS. Może to być różni się od identyfikatora URI aplikacji na telefon. Możesz na przykład użyć identyfikatora URI rynku Na przykład: market://details?id=com.example.android.wearable.wear.finddevices

Dane o lokalizacji zegarków sparowanych z iPhone'ami

W przypadku zegarków sparowanych z iPhone'ami użyj Fused Location Provider (FLP) – dane o lokalizacji na zegarku. Więcej informacji: Wykrywanie lokalizacji na Wear OS.

Jeśli dodatkowy telefon jest dostępny, FLP używa tego telefonu do dane o lokalizacji.

Uzyskiwanie tylko niezbędnych danych

Ogólnie rzecz biorąc, przy pobieraniu danych z internetu pobierz tylko niezbędne dane. W przeciwnym razie mogą pojawić się niepotrzebne opóźnienia, i użycie baterii.

Przy połączeniu zegarka przez Bluetooth LE aplikacja może mają dostęp do przepustowości wynoszącej zaledwie 4 kilobajty na sekundę, w zależności na zegarku. Dlatego zalecamy wykonanie tych czynności:

  • Skontroluj żądania i odpowiedzi sieciowe pod kątem dodatkowych danych, które są dostępne tylko potrzebne w aplikacji na telefon.
  • Zmniejszaj duże obrazy, zanim prześlesz je przez sieć do zegarka.

Jeśli potrzebujesz sieci o dużej przepustowości, zapoznaj się z artykułem Dostęp do sieci o dużej przepustowości.

Dodatkowe przykłady kodu

Przykładowa etykieta Asystenta Datalayer dodatkowo prezentuje wykorzystanie interfejsów API omówionych na tej stronie.