aplikacja Wear OS może działać niezależnie od telefonu. Użytkownicy mogą wykonywać zadania na zegarku, bez dostępu do telefonu z Androidem lub iOS.
skorzystaj z następujących powiązanych zasobów:
- Sprawdź zdalną próbkę aplikacji
- Planuj swoje aplikacje
- Zidentyfikuj aplikację jako samodzielną
- Zdefiniuj aplikację jako aplikację Wear
- współdzielony kod i przechowywanie danych
- Wykryj aplikację na innym urządzeniu
- Określ nazwy funkcji do wykrywania aplikacji
- wykrywanie aplikacji i otwieranie adresu URL z zegarka
- szczegóły wykrywania typu sparowanego telefonu
- Kotlin
- Java
- wykrywanie aplikacji począwszy od telefonu z Androidem
- dane lokalizacji zegarków sparowanych z telefonami iPhone
- uzyskaj Tylko niezbędne dane
- dodatkowe próbki kodu
Planuj swoje aplikacje
możesz użyć funkcji wielu APK (multi-APK) w Google Play, aby opublikować więcej niż jeden APK na tej samej liście aplikacji. Zegarek APK powinny być dystrybuowane przy użyciu tej funkcji; nie osadzaj APK zegarka w APK telefonu. Aby uzyskać informacje na temat konfigurowania aplikacji do dystrybucji w Sklepie Google Play, Zobacz Pakowanie i dystrybucja aplikacji Wear oraz sposób działania wielu plików APK.
Uwaga: Aby zakwalifikować się do promocji w Sklepie Google Play na Wear (czyli w Sklepie Play na zegarku), Twoja aplikacja musi działać niezależnie od telefonu. wymagane jest wsparcie dla systemów iOS i Android.
Ogólnie Rzecz Biorąc, minimalny i docelowy poziom API dla samodzielnej aplikacji i dla Wear 2.0 to poziom 25. Minimalny poziom SDK może być 23 tylko wtedy, gdy używasz tego samego APK dla Wear 1.0 i 2.0 (a tym samym mieć wbudowany Wear 1.0 APK).
Uwaga: Ze względu na problem z opóźnieniem wpływającym na dostępność aplikacji na Wear 1.zegarki x, jeśli zbudujesz samodzielny Nosić 2.0 APK i będzie nadal mieć Nosić 1.0 APK, wykonaj obie następujące czynności:
- Zapewnij samodzielną wersję aplikacji Wear APK i
- Kontynuuj osadzanie wersji aplikacji Wear w telefonie APK
Uwaga: Jeśli opublikujesz aktualizację istniejącego APK telefonu produkcyjnego, który usunął osadzony APK Wear, użytkownicy produkcyjni, którzy zaktualizują APK telefonu przed zainstalowaniem samodzielnego APK Wear, stracą istniejącą aplikację Wear i jej dane. Jeśli opublikujesz aktualizację do istniejącego, produkcyjnego telefonu APK, nadal osadzaj swój zegarek APK w tym telefonie APK.
uprawnienia w czasie pracy są wymagane dla samodzielnych aplikacji.
informacje na temat żądań sieciowych i dostępu do sieci o dużej przepustowości można znaleźć w sekcji dostęp do sieci i synchronizacja.
Zidentyfikuj aplikację jako samodzielną
Aplikacje Wear muszą mieć element meta-data
w pliku manifestu Androida, jako element potomny elementu <application>
. Nazwa elementu meta-data
to com.google.android.wearable.standalone
, a wartość musi być true
lub false
. Element wskazuje, czy aplikacja zegarka jest samodzielną aplikacją, a zatem nie wymaga do działania aplikacji na Androida po stronie telefonu. Jeśli ustawienie elementu to true
, Twoja aplikacja może być dostępna w Sklepie Play w zegarkach sparowanych z telefonami iPhone, o ile aktywne pliki APK we wszystkich kanałach (np. w kanale beta) mają element ustawiony na true
. Jeśli nie wszystkie Twoje pliki APK (alfa, beta i produkcyjne), które są obecnie obsługiwane przez użytkowników, mają powyższe ustawienie, Twoja aplikacja będzie niedostępna, gdy użytkownik wyszuka zegarek sparowany z iPhonem.
aplikacja zegarka może być uważana za jedną z następujących:
- całkowicie niezależna od aplikacji telefonicznej
- częściowo niezależna (aplikacja na telefon nie jest wymagana i zapewnia tylko opcjonalne funkcje)
- w zależności od aplikacji na telefon
Jeśli aplikacja zegarka jest całkowicie niezależna lub częściowo niezależna, uważa się, że znajduje się w kategorii autonomicznej. Musisz wskazać tę kategoryzację w Sklepie Google Play, ustawiając wartość tego elementu meta-data
na true
:
<application>... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" />...</application>
ponieważ samodzielna aplikacja (to znaczy niezależna lub częściowo niezależna aplikacja) może być zainstalowana przez użytkownika iPhone ’ a lub użytkownika telefonu z Androidem, który nie ma Sklepu Play, aplikacja zegarka powinna być użyteczna bez aplikacji telefonu.
jeśli aplikacja zegarka zależy od aplikacji telefonu, ustaw wartość powyższego elementu meta-data
na false
. Ustawienie elementu na false
oznacza, że aplikacja zegarek powinien być zainstalowany tylko na zegarek, który jest sparowany z telefonem, który ma Sklep Play.
uwaga: nawet jeśli wartość wynosi false
, aplikację zegarek można zainstalować przed zainstalowaniem aplikacji telefonu. Dlatego jeśli aplikacja zegarka wykryje, że telefon towarzyszący nie ma niezbędnej aplikacji na telefon, aplikacja zegarka powinna poprosić Użytkownika o zainstalowanie aplikacji telefonu.
Zdefiniuj aplikację jako aplikację Wear
musisz upewnić się, że znacznik <uses-feature>
jest zdefiniowany w pliku manifestu Androida w aplikacji. Musi wskazywać, że jest to aplikacja watch
, na przykład android:name="android.hardware.type.watch"
w następujący sposób:
<manifest>... <uses-feature android:name="android.hardware.type.watch" />...</manifest>
współdzielony kod i przechowywanie danych
kod można współdzielić między aplikacją Wear a aplikacją na telefon. Opcjonalnie kod specyficzny dla danego formatu może znajdować się w osobnym module.
na przykład wspólny kod sieciowy może znajdować się w bibliotece współdzielonej.
możesz użyć standardowych interfejsów API pamięci Android do przechowywania danych lokalnie, tak jak w telefonie. Na przykład można użyć interfejsów API SharedPreferences lub biblioteki trwałości pokoju.
Wykryj aplikację na innym urządzeniu
aplikacja zegarka może wykryć, czy odpowiednia aplikacja telefonu jest dostępna i odwrotnie.
Twoja aplikacja na telefon lub zegarek może używać CapabilityClient
do reklamowania obecności aplikacji na sparowanym urządzeniu. Może to robić statycznie i dynamicznie. Gdy aplikacja znajduje się w węźle w sieci Wear użytkownika (np. w telefonie, sparowanym zegarku lub w chmurze), CapabilityClient
umożliwia innej aplikacji wykrycie, czy jest zainstalowana. Aby uzyskać więcej informacji, zobacz Funkcje reklamowania.
jeśli jedna z Twoich aplikacji nie może wykryć drugiej, możesz umożliwić użytkownikowi otwarcie listy Sklepu Play na swoim urządzeniu zdalnym. Jest to rozwiązanie dla aplikacji zegarków, które wymagają obecności aplikacji telefonu towarzyszącego do prawidłowego działania. Warunkiem jest sprawdzenie obecności Sklepu Play na zdalnym urządzeniu.
zauważ, że nie wszystkie telefony obsługują Sklep Play (np. iPhone ’ y itp.).
w tej sekcji opisano najlepsze praktyki dla tych scenariuszy:
- twoja autonomiczna aplikacja zegarka potrzebuje twojej aplikacji na telefon
- Twoja aplikacja na telefon potrzebuje twojej autonomicznej aplikacji zegarka
przejrzyj próbkę, która pokazuje tę funkcjonalność. Aby uzyskać więcej informacji na temat klas opisanych poniżej, zobacz odniesienie do interfejsu API Wear. W tym odnośniku znajdują się również informacje o klasie PhoneDeviceType
, która zawiera metodę getPhoneDeviceType()
, która umożliwia aplikacji Wear sprawdzenie, czy telefon towarzyszący jest urządzeniem z systemem Android lub iOS.
Określ nazwy funkcji do wykrywania aplikacji
w przypadku aplikacji odpowiadającej każdemu typowi urządzenia (zegarek lub telefon) określ unikalny ciąg dla nazwy funkcji w pliku res/values/wear.xml
.
na przykład w module mobilnym plik wear.xml
może zawierać następujące informacje:
w module wear plik wear.xml
będzie zawierał inną wartość dla nazwy funkcji, na przykład:
aby uzyskać więcej informacji, zobacz Funkcje reklamowania.
wykrywanie aplikacji i otwieranie adresu URL z zegarka
Twoja aplikacja zegarka może wykryć, czy telefon towarzyszący użytkownika ma aplikację telefonu:
- użyj
CapabilityClient
, aby sprawdzić, czy aplikacja telefon jest zainstalowana w sparowanym telefonie. Aby uzyskać więcej informacji, zobacz próbkę. - Jeśli aplikacja telefonu nie jest zainstalowana w telefonie, użyj metody
PhoneDeviceType.getPhoneDeviceType()
, aby sprawdzić typ telefonu. - jeśli zwrócono
PhoneDeviceType.DEVICE_TYPE_ANDROID
, telefon jest telefonem z Androidem. Zadzwoń pod numerRemoteIntent.startRemoteActivity()
na urządzeniu Wear, aby otworzyć app store na telefonie. Użyj URI market dla aplikacji na telefon (który może się różnić od URI telefonu). Na przykład użyj Uri rynku, takiego jak:market://details?id=com.example.android.wearable.wear.finddevices
- jeśli zwracana jest wartość
PhoneDeviceType.DEVICE_TYPE_IOS
, oznacza to, że telefon jest telefonem z systemem iOS (bez Sklepu Play). Otwórz App Store na iPhonie, dzwoniąc pod numerRemoteIntent.startRemoteActivity()
na urządzeniu Wear. Możesz określić adres URL aplikacji iTunes, na przykład. Na iPhonie, od Wear OS, nie można programowo określić, czy aplikacja telefonu jest zainstalowana. Najlepszym rozwiązaniem jest zapewnienie użytkownikowi mechanizmu (np. przycisku) do ręcznego uruchamiania otwarcia sklepu z aplikacjami.
zwróć uwagę, że korzystając z opisanego powyżej interfejsu API RemoteIntent
, możesz określić, że dowolny adres URL zostanie otwarty w telefonie z zegarka i nie jest wymagana żadna aplikacja telefonu.
szczegóły wykrywania typu sparowanego telefonu
oto fragment, który używa metody getPhoneDeviceType()
do sprawdzenia typu telefonu, z którym zegarek jest sparowany:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
wartość zwracana przez metodę getPhoneDeviceType()
jest jedną z następujących wartości:
Zwraca wartość | opis |
---|---|
DEVICE_TYPE_ANDROID |
telefon towarzyszący to urządzenie z systemem Android. |
DEVICE_TYPE_IOS |
telefon towarzyszący to urządzenie z systemem iOS. |
DEVICE_TYPE_ERROR_UNKNOWN |
wystąpił błąd przy określaniu typu sparowanego telefonu; kolejne sprawdzenie należy wykonać później. |
wykrywanie aplikacji począwszy od telefonu z Androidem
Twój telefon z Androidem może wykryć, czy urządzenia zużywające się Użytkownika mają aplikację zegarka:
- korzystając z
NodeClient
, Znajdź wszystkie zegarki podłączone do telefonu użytkownika. Aby uzyskać więcej informacji, zobacz próbkę. - korzystając z urządzenia
CapabilityClient
, sprawdź, który z zegarków użytkownika ma zainstalowaną aplikację. - jeśli aplikacja nie jest zainstalowana na wszystkich zegarkach użytkownika (porównaj wyniki z kroku 1 z wynikami z Kroku 2), pozwól użytkownikowi otworzyć Sklep Play na pozostałych urządzeniach Wear z telefonu za pomocą metody
RemoteIntent.startRemoteActivity()
. W szczególności użyj URI market dla aplikacji Wear (który może różnić się od URI aplikacji na telefon). Na przykład użyj Uri rynku, takiego jak:market://details?id=com.example.android.wearable.wear.finddevices
dane lokalizacji zegarków sparowanych z telefonami iPhone
w przypadku zegarków sparowanych z telefonami iPhone programiści powinni korzystać z usługi Fused Location Provider (FLP), aby uzyskać dane lokalizacji zegarka. Zobacz wykrywanie lokalizacji przy zużyciu.
jeśli telefon towarzyszący jest dostępny, FLP używa telefonu towarzyszącego do danych o lokalizacji.
uzyskaj Tylko niezbędne dane
ogólnie, podczas uzyskiwania danych z Internetu powinieneś uzyskać tylko niezbędne dane. W przeciwnym razie możesz wprowadzić niepotrzebne opóźnienia, zużycie pamięci i zużycie baterii.
gdy zegarek jest podłączony przez połączenie Bluetooth LE, aplikacja może mieć dostęp do przepustowości tylko 4 kilobajtów na sekundę, w zależności od zegarka. Dlatego zaleca się następujące kroki:
- skontroluj żądania sieciowe i odpowiedzi w poszukiwaniu dodatkowych danych, które dotyczą tylko aplikacji telefonicznej
- zmniejsz duże obrazy przed wysłaniem ich przez sieć do zegarka
przypadki, w których potrzebna jest sieć o dużej przepustowości, zobacz dostęp do sieci o dużej przepustowości.
dodatkowe próbki kodu
próbka WearVerifyRemoteApp dodatkowo demonstruje użycie interfejsów API opisanych na tej stronie.