o aplicație Wear OS poate funcționa independent de un telefon. Utilizatorii pot finaliza sarcini pe un ceas, fără acces la un telefon Android sau iOS.
consultați următoarele resurse conexe:
- verificați eșantionul aplicației la distanță
- Planificați-vă aplicațiile
- identificați o aplicație ca independentă
- definiți o aplicație ca aplicație Wear
- Codul partajat și stocarea datelor
- detectați aplicația pe un alt dispozitiv
- specificați numele capabilităților pentru detectarea aplicațiilor
- detectarea aplicației și deschiderea unei adrese URL de la un ceas
- detalii pentru detectarea tipului de telefon asociat
- Kotlin
- Java
- detectarea aplicației pornind de la un telefon Android
- date de locație pentru ceasurile asociate cu iPhone-urile
- obțineți numai datele necesare
- mostre suplimentare de cod
Planificați-vă aplicațiile
puteți utiliza funcția multi APK (multi-APK) A Google Play pentru a publica mai multe APK sub aceeași listă de aplicații. Un ceas APK ar trebui să fie distribuite folosind această caracteristică; nu încorporați un ceas APK într-un telefon APK. Pentru informații despre configurarea aplicației pentru distribuire prin Magazinul Google Play, consultați ambalarea și distribuirea aplicațiilor Wear și modul în care funcționează mai multe fișiere APK.
notă: pentru a vă califica pentru promovare în Google Play Store on Wear (adică în Magazinul Play On-watch), aplicația dvs. trebuie să funcționeze independent de un telefon. iOS, precum și suport Android este necesar.
în general, nivelul API minim și țintă pentru o aplicație independentă și pentru Wear 2.0 este nivelul 25. Nivelul minim SDK poate fi 23 numai dacă utilizați același APK pentru Wear 1.0 și 2.0 (și, astfel, au o uzură încorporat 1.0 APK).
Notă: Din cauza unei probleme de latență care afectează disponibilitatea unei aplicații pe Wear 1.x Ceasuri, dacă vă construi un standalone Wear 2.0 APK și va continua să aibă o uzură 1.0 APK, face ambele următoarele:
- furnizați o versiune independentă a Apk Wear și
- continuați să încorporați o versiune a Apk Wear în APK-ul telefonului
atenție: Dacă publicați o actualizare a APK-ului dvs. existent pentru telefon de producție care a eliminat un APK Wear încorporat, utilizatorii de producție care actualizează APK-ul telefonului înainte de a instala APK-ul wear independent își vor pierde aplicația Wear existentă și datele sale. Dacă publicați o actualizare a APK-ului dvs. de telefon existent, continuați să încorporați APK-ul de ceas în acel APK de telefon.
permisiuni Run-time sunt necesare pentru aplicații independente.
pentru informații despre solicitările de rețea și accesul la rețea cu lățime mare de bandă, consultați accesul la rețea și sincronizarea.
identificați o aplicație ca independentă
aplicațiile Wear trebuie să aibă un element meta-data
în Fișierul Manifest Android, ca un copil al elementului <application>
. Numele elementului meta-data
este com.google.android.wearable.standalone
și valoarea trebuie să fie true
sau false
. Elementul indică dacă aplicația watch este o aplicație independentă și, prin urmare, nu necesită o aplicație Android pe partea telefonului pentru a funcționa. Dacă setarea pentru element este true
, aplicația dvs. poate fi disponibilă în Magazin Play pe ceasuri asociate cu iPhone-uri, atâta timp cât Fișierele APK active din toate canalele (de exemplu, în canalul beta) au elementul setat la true
. Dacă nu toate fișierele APK (alfa, beta și producție) care sunt difuzate în prezent utilizatorilor au setarea de mai sus, aplicația dvs. va fi indisponibilă atunci când un utilizator caută pe un ceas asociat cu un iPhone.
o aplicație de ceas poate fi considerată una dintre următoarele:
- complet independent de o aplicație de telefon
- Semi-independent (o aplicație de telefon nu este necesară și ar oferi doar caracteristici opționale)
- Dependent de o aplicație de telefon
dacă o aplicație de ceas este complet independentă sau semi-independentă, se consideră că face parte din categoria autonomă. Trebuie să indicați Această clasificare în Magazinul Google Play setând valoarea acestui element meta-data
la true
:
<application>... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" />...</application>
deoarece o aplicație independentă (adică o aplicație independentă sau semi-independentă) poate fi instalată de un utilizator iPhone sau de un utilizator al unui telefon Android căruia îi lipsește Play Store, aplicația watch ar trebui să fie utilizabilă fără aplicația phone.
dacă o aplicație watch depinde de o aplicație pentru telefon, setați valoarea elementului meta-data
de mai sus la false
. Setarea elementului la false
înseamnă că aplicația watch trebuie instalată numai pe un ceas care este asociat cu un telefon care are Magazinul Play.
notă: chiar dacă valoarea este false
, aplicația watch poate fi instalată înainte de instalarea aplicației Telefon. Prin urmare, dacă o aplicație watch detectează că unui telefon însoțitor îi lipsește o aplicație telefonică necesară, aplicația watch ar trebui să solicite utilizatorului să instaleze aplicația phone.
definiți o aplicație ca aplicație Wear
trebuie să vă asigurați că eticheta <uses-feature>
este definită în Fișierul manifest Android din aplicația dvs. Trebuie să indice că este o aplicație watch
, de exemplu, android:name="android.hardware.type.watch"
după cum urmează:
<manifest>... <uses-feature android:name="android.hardware.type.watch" />...</manifest>
Codul partajat și stocarea datelor
pot fi partajate între o aplicație Wear și o aplicație pentru telefon. Opțional, codul specific unui factor de formă poate fi într-un modul separat.
de exemplu, codul comun pentru rețea poate fi într-o bibliotecă partajată.
puteți utiliza API-uri standard de stocare Android pentru a stoca date la nivel local, așa cum ați face pe un telefon. De exemplu, puteți utiliza API-urile SharedPreferences sau biblioteca de persistență a camerei.
detectați aplicația pe un alt dispozitiv
aplicația dvs. de ceas poate detecta dacă aplicația de telefon corespunzătoare este disponibilă și invers.
aplicația Telefon sau aplicația ceas poate utiliza CapabilityClient
pentru a face publicitate prezenței aplicației pe un dispozitiv asociat. Se poate face acest lucru static și dinamic. Când o aplicație se află pe un nod din rețeaua Wear a unui utilizator (adică pe un telefon, ceas asociat sau în cloud), CapabilityClient
permite unei alte aplicații să detecteze dacă este instalată. Pentru mai multe informații, consultați capacitățile de publicitate.
dacă una dintre aplicațiile dvs. nu o poate detecta pe cealaltă, puteți permite unui utilizator să deschidă înregistrarea Play Store pe dispozitivul său de la distanță. Aceasta este o soluție pentru aplicațiile de ceas care necesită prezența aplicației de telefon însoțitoare pentru a funcționa corect. O condiție prealabilă este să verificați prezența Magazinului Play pe dispozitivul de la distanță.
rețineți că nu toate telefoanele acceptă Play Store (cum ar fi iPhone-urile etc.).
această secțiune descrie cele mai bune practici pentru aceste scenarii:
- aplicația dvs. de ceas independentă are nevoie de aplicația dvs. de telefon
- aplicația dvs. de telefon are nevoie de aplicația dvs. de ceas independentă
examinați eșantionul care arată această funcționalitate. Pentru mai multe informații despre clasele descrise mai jos, consultați referința Wear API. De asemenea, în această referință se află informații despre clasa PhoneDeviceType
, care conține o metodă getPhoneDeviceType()
care permite aplicației Wear să verifice dacă un telefon însoțitor este un dispozitiv Android sau iOS.
specificați numele capabilităților pentru detectarea aplicațiilor
pentru aplicația corespunzătoare fiecărui tip de dispozitiv (ceas sau telefon), specificați un șir unic pentru numele capabilităților din fișierul res/values/wear.xml
.
de exemplu, în modulul mobil, fișierul wear.xml
ar putea include următoarele:
în modulul wear, fișierul wear.xml
ar include o valoare diferită pentru numele capabilității, cum ar fi următoarele:
pentru mai multe informații, consultați publicitate capabilități.
detectarea aplicației și deschiderea unei adrese URL de la un ceas
aplicația dvs. de ceas poate detecta dacă telefonul însoțitor al unui utilizator are aplicația dvs. de telefon:
- utilizați
CapabilityClient
pentru a verifica dacă aplicația telefon este instalată pe telefonul asociat. Pentru mai multe informații, consultați eșantionul. - dacă aplicația telefonului nu este instalată pe telefon, utilizați metoda
PhoneDeviceType.getPhoneDeviceType()
pentru a verifica tipul telefonului. - dacă
PhoneDeviceType.DEVICE_TYPE_ANDROID
este returnat, telefonul este un telefon Android. ApelațiRemoteIntent.startRemoteActivity()
pe dispozitivul Wear pentru a deschide app store pe telefon. Utilizați URI-ul de piață pentru aplicația dvs. de telefon (care poate fi diferit de URI-ul telefonului dvs.). De exemplu, utilizați un uri de piață, cum ar fi:market://details?id=com.example.android.wearable.wear.finddevices
- dacă
PhoneDeviceType.DEVICE_TYPE_IOS
este returnat, înseamnă că telefonul este un telefon iOS (fără Magazin Play disponibil). Deschideți App Store pe iPhone apelândRemoteIntent.startRemoteActivity()
pe dispozitivul Wear. Puteți specifica adresa URL iTunes a aplicației dvs., de exemplu,. Pe un iPhone, din Wear OS, nu puteți determina programatic dacă aplicația dvs. de telefon este instalată. Ca o bună practică, furnizați un mecanism utilizatorului (de exemplu, un buton) pentru a declanșa manual deschiderea App Store.
rețineți că utilizând API-ul RemoteIntent
descris mai sus, puteți specifica că orice adresă URL să fie deschisă pe telefon de la ceas și nu este necesară nicio aplicație telefonică.
detalii pentru detectarea tipului de telefon asociat
Iată un fragment care utilizează metoda getPhoneDeviceType()
pentru a verifica tipul de telefon la care este asociat ceasul:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
valoarea returnată prin metoda getPhoneDeviceType()
este una dintre următoarele:
valoarea returnată | descriere |
---|---|
DEVICE_TYPE_ANDROID |
telefonul însoțitor este un dispozitiv Android. |
DEVICE_TYPE_IOS |
telefonul însoțitor este un dispozitiv iOS. |
DEVICE_TYPE_ERROR_UNKNOWN |
a apărut o eroare la determinarea tipului de telefon asociat; o altă verificare ar trebui făcută ulterior. |
detectarea aplicației pornind de la un telefon Android
telefonul Dvs. Android poate detecta dacă dispozitivele de uzură ale unui utilizator au aplicația watch:
- folosind
NodeClient
, găsiți toate ceasurile conectate la telefonul utilizatorului. Pentru mai multe informații, consultați eșantionul. - folosind
CapabilityClient
, verificați care dintre ceasurile utilizatorului au aplicația instalată. - dacă aplicația dvs. nu este instalată pe toate ceasurile utilizatorului (comparați rezultatele de la Pasul 1 cu rezultatele de la Pasul 2), permiteți utilizatorului să deschidă Play Store pe dispozitivele de uzură rămase de pe telefon prin metoda
RemoteIntent.startRemoteActivity()
. Mai exact, utilizați URI-ul de piață pentru aplicația Wear (care poate fi diferit de URI-ul aplicației dvs. de telefon). De exemplu, utilizați un uri de piață, cum ar fi:market://details?id=com.example.android.wearable.wear.finddevices
date de locație pentru ceasurile asociate cu iPhone-urile
pentru ceasurile asociate cu iPhone-urile, dezvoltatorii ar trebui să utilizeze furnizorul de locație fuzionat (FLP) pentru a obține date de locație pe un ceas. Consultați detectarea locației la uzură.
dacă telefonul însoțitor este disponibil, FLP utilizează telefonul însoțitor pentru datele de localizare.
obțineți numai datele necesare
în general, atunci când obțineți date de pe internet, ar trebui să obțineți doar datele necesare. În caz contrar, puteți introduce latență inutilă, utilizarea memoriei și utilizarea bateriei.
când un ceas este conectat printr-o conexiune Bluetooth LE, aplicația dvs. poate avea acces la o lățime de bandă de numai 4 kilobiți pe secundă, în funcție de ceas. Prin urmare, se recomandă următorii pași:
- auditați solicitările de rețea și răspunsurile pentru date suplimentare care sunt doar pentru o aplicație telefonică
- micșorați imaginile mari înainte de a le trimite printr-o rețea către un ceas
pentru cazurile în care este necesară o rețea cu lățime mare de bandă, consultați acces la rețea cu lățime mare de bandă.
mostre suplimentare de cod
proba WearVerifyRemoteApp demonstrează în continuare utilizarea API-urilor acoperite pe această pagină.