Standalone Wear apps

een Wear OS app kan onafhankelijk van een telefoon werken. Gebruikers kunnen taken uitvoeren op een horloge, zonder toegang tot een Android-of iOS-telefoon.

verwijs naar de volgende gerelateerde bronnen:

  • Remote App voorbeeld verifiëren

Plan uw apps

u kunt de functie meerdere APK (multi-APK) van Google Play gebruiken om meer dan één APK onder dezelfde applicatie-lijst te publiceren. Een horloge APK moet worden gedistribueerd met behulp van die functie; niet insluiten een horloge APK in een telefoon APK. Zie Wear-Apps verpakken en distribueren en hoe meerdere apk ‘ s werken voor informatie over het instellen van uw app voor distributie via de Google Play Store.

opmerking: om in aanmerking te komen voor promotie in de Google Play Store on Wear (dat wil zeggen in de on-watch Play Store), moet uw app onafhankelijk van een telefoon functioneren. iOS en Android ondersteuning is vereist.

in het algemeen is het minimale en beoogde API-niveau voor een zelfstandige app, en voor Wear 2.0, niveau 25. De minimale SDK niveau kan worden 23 alleen als u gebruik maakt van dezelfde APK voor slijtage 1.0 en 2.0 (en dus hebben een ingebed slijtage 1.0 APK).

Opmerking: vanwege een latentieprobleem dat van invloed is op de beschikbaarheid van een app op Wear 1.x horloges, Als u een standalone slijtage bouwen 2.0 APK en zal blijven een slijtage 1.0 APK hebben, doen beide van de volgende:

  • zorg voor een standalone versie van de Wear APK, en
  • blijven inbedden van een versie van de Wear APK in uw telefoon APK

voorzichtigheid: Als u een update te publiceren op uw bestaande, productie telefoon APK die een embedded slijtage APK heeft verwijderd, productie gebruikers die de telefoon bij te werken APK voordat u uw standalone slijtage APK zal hun bestaande slijtage app en de gegevens te verliezen. Als u een update te publiceren op uw bestaande, productie telefoon APK, blijven uw horloge APK insluiten in die telefoon APK.

Runtime-rechten zijn vereist voor zelfstandige apps.

voor informatie over netwerkaanvragen en netwerktoegang met hoge bandbreedte, zie netwerktoegang en synchronisatie.

Identificeer een app als standalone

Wear apps moeten een meta-data – element in het Android Manifest-bestand hebben, als kind van het <application> – element. De naam van het meta-data element is com.google.android.wearable.standalone en de waarde moet true of falsezijn. Het element geeft aan of uw horloge-app is een standalone app en dus niet een telefoon-side Android app te bedienen. Als de instelling voor het element true is, kan uw app beschikbaar worden gemaakt in de Play Store op Horloges gekoppeld aan iPhones, zolang uw actieve Apk in alle kanalen (bijvoorbeeld in het bètakanaal) het element op truehebben ingesteld. Als niet alle APK ‘ s (alpha, beta en productie) die momenteel worden geserveerd aan gebruikers de bovenstaande instelling hebben, is uw app niet beschikbaar wanneer een gebruiker zoekt op een horloge gekoppeld aan een iPhone.

een watch-app kan worden beschouwd als een van de volgende:

  • volledig onafhankelijk van een telefoon-app
  • Semi-onafhankelijk (een telefoon-app is niet vereist en biedt alleen optionele functies)
  • afhankelijk van een telefoon-app

als een watch-app volledig of semi-onafhankelijk is, wordt deze beschouwd als een zelfstandige categorie. U moet deze categorisatie aangeven in de Google Play store door de waarde van dit meta-data element in te stellen op true:

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

aangezien een standalone app (dat wil zeggen, een onafhankelijke of semi-onafhankelijke app) kan worden geïnstalleerd door een iPhone-gebruiker of een gebruiker van een Android-telefoon die de Play Store mist, de watch app moet bruikbaar zijn zonder de telefoon app.

als een watch-app afhankelijk is van een telefoon-app, stelt u de waarde van het bovenstaande meta-data – element in op false. Het instellen van het element op false betekent dat de watch-app alleen moet worden geïnstalleerd op een horloge dat is gekoppeld aan een telefoon met de Play Store.

opmerking: zelfs als de waarde false is, kan de watch-app worden geïnstalleerd voordat de telefoon-app wordt geïnstalleerd. Daarom, als een horloge-app detecteert dat een metgezel telefoon mist een noodzakelijke telefoon-app, de horloge-app moet de gebruiker vragen om de telefoon-app te installeren.

Definieer een app als een Wear app

u moet ervoor zorgen dat de <uses-feature> tag is gedefinieerd in het Android Manifest-bestand in uw app. Het moet aangeven dat het een watch app is, bijvoorbeeld android:name="android.hardware.type.watch", en wel als volgt::

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

gedeelde code en gegevensopslag

Code kan worden gedeeld tussen een Wear-app en een telefoon-app. Optioneel kan code die specifiek is voor een vormfactor in een aparte module worden geplaatst.

gemeenschappelijke code voor netwerken kan bijvoorbeeld in een gedeelde bibliotheek zijn.

u kunt standaard Android opslag API ‘ s gebruiken om gegevens lokaal op te slaan, zoals op een telefoon. U kunt bijvoorbeeld gebruik maken van de SharedPreferences API ‘ s of de room persistence library.

Detecteer uw app op een ander apparaat

uw watch-app kan detecteren of de bijbehorende telefoon-app beschikbaar is en vice versa.

uw telefoon-app of kijk-app kan de CapabilityClient gebruiken om de aanwezigheid van de app te adverteren op een gekoppeld apparaat. Het kan dit statisch en dynamisch doen. Wanneer een app zich op een knooppunt in het Wear-netwerk van een gebruiker bevindt (bijvoorbeeld op een telefoon, gekoppeld horloge of in de cloud), stelt CapabilityClient een andere app in staat om te detecteren of deze is geïnstalleerd. Zie mogelijkheden adverteren voor meer informatie.

als een van uw apps de andere niet kan detecteren, kunt u een gebruiker de Play Store-lijst op zijn externe apparaat laten openen. Dit is een oplossing voor watch apps die de aanwezigheid van hun metgezel telefoon app nodig hebben om goed te functioneren. Een voorwaarde is om te controleren of de Play Store ‘ s aanwezigheid op het externe apparaat.

merk op dat niet alle telefoons de Play Store ondersteunen (zoals iPhones, enz.).

dit gedeelte beschrijft de beste praktijken voor deze scenario ‘ s:

  • uw standalone horloge-app heeft uw telefoon-app
  • uw telefoon-app heeft uw standalone horloge-app

Bekijk het voorbeeld dat deze functionaliteit toont. Voor meer informatie over de hieronder beschreven klassen, zie de Wear API referentie. In die referentie staat ook informatie over de PhoneDeviceType – klasse, die een getPhoneDeviceType() – methode bevat waarmee uw Wear-app kan controleren of een metgezeltelefoon een Android-of iOS-apparaat is.

geef capability namen op voor het detecteren van uw apps

voor de app die overeenkomt met elk apparaattype (horloge of telefoon), geef een unieke string op voor de capability naam in het res/values/wear.xml bestand.

in uw mobiele module zou het bestand wear.xml bijvoorbeeld het volgende kunnen bevatten:

in uw wear-module zou het bestand wear.xml een andere waarde voor de capability-naam kunnen bevatten, zoals het volgende:

zie adverteer mogelijkheden voor meer informatie.

app detectie en het openen van een URL van een watch

uw watch-app kan detecteren of de metgezeltelefoon van een gebruiker uw telefoon-app heeft:

  1. gebruik CapabilityClient om te controleren of uw telefoon-app is geïnstalleerd op de gekoppelde telefoon. Zie het voorbeeld voor meer informatie.
  2. als uw telefoon-app niet op de telefoon is geïnstalleerd, gebruikt u de methode PhoneDeviceType.getPhoneDeviceType() om het type telefoon te controleren.
  3. indien PhoneDeviceType.DEVICE_TYPE_ANDROID wordt geretourneerd, is de telefoon een Android-telefoon. Bel RemoteIntent.startRemoteActivity() op het Wear-apparaat om de app store op de telefoon te openen. Gebruik de markt-URI voor uw telefoon-app (die kan verschillen van uw telefoon-URI). Gebruik bijvoorbeeld een markt-URI zoals: market://details?id=com.example.android.wearable.wear.finddevices
  4. als PhoneDeviceType.DEVICE_TYPE_IOS wordt geretourneerd, betekent dit dat de telefoon een iOS-telefoon is (zonder Play Store beschikbaar). Open de App Store op de iPhone door op het Wear-apparaat RemoteIntent.startRemoteActivity() te bellen. U kunt de iTunes URL van uw app opgeven, bijvoorbeeld . Op een iPhone, van Wear OS, kunt u niet programmatisch bepalen of uw telefoon app is geïnstalleerd. Als een best practice, bieden een mechanisme aan de gebruiker (bijvoorbeeld, een knop) om de opening van de App Store handmatig te activeren.

merk op dat met behulp van de hierboven beschreven RemoteIntent API, u kunt opgeven dat een URL op de telefoon wordt geopend vanuit het horloge, en geen telefoon-app is vereist.

Details voor het detecteren van het type gekoppelde telefoon

hier is een fragment dat de getPhoneDeviceType() methode gebruikt om het type telefoon te controleren waaraan het horloge gekoppeld is:

Kotlin

var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)

Java

int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);

de waarde die volgens de methode getPhoneDeviceType() wordt geretourneerd, is een van de volgende waarden::

retourwaarde beschrijving
DEVICE_TYPE_ANDROID de metgezel telefoon is een Android-apparaat.
DEVICE_TYPE_IOS de metgezel telefoon is een iOS-apparaat.
DEVICE_TYPE_ERROR_UNKNOWN er is een fout opgetreden bij het bepalen van het type gekoppelde telefoon; een andere controle moet later worden uitgevoerd.

appdetectie vanaf een Android-telefoon

uw Android-telefoon kan detecteren of de Wear-apparaten van een gebruiker uw watch-app hebben:

  1. zoek met de NodeClient alle horloges die verbonden zijn met de telefoon van de gebruiker. Zie het voorbeeld voor meer informatie.
  2. controleer met de CapabilityClient welke horloges van de gebruiker uw app hebben geïnstalleerd.
  3. als uw app niet op alle horloges van de gebruiker is geïnstalleerd (vergelijk de resultaten van Stap 1 met de resultaten van Stap 2), laat de gebruiker de Play Store openen op de resterende Wear-apparaten vanaf de telefoon via de RemoteIntent.startRemoteActivity() methode. Specifiek, gebruik maken van de markt URI voor de Wear app (die kan verschillen van de URI van uw telefoon app). Gebruik bijvoorbeeld een markt-URI zoals: market://details?id=com.example.android.wearable.wear.finddevices

locatiegegevens voor horloges gekoppeld aan iPhones

voor horloges gekoppeld aan iPhones moeten ontwikkelaars de Fused Location Provider (FLP) gebruiken om locatiegegevens op een horloge te krijgen. Zie locatie detecteren bij slijtage.

als de begeleidende telefoon beschikbaar is, gebruikt FLP de begeleidende telefoon voor locatiegegevens.

verkrijg alleen de benodigde gegevens

in het algemeen dient u bij het verkrijgen van gegevens via internet alleen de benodigde gegevens te verkrijgen. Anders kunt u onnodig latency, geheugengebruik en batterijgebruik introduceren.

wanneer een horloge is verbonden via een Bluetooth LE-verbinding, heeft uw app mogelijk toegang tot een bandbreedte van slechts 4 kilobyte per seconde, afhankelijk van het horloge. Daarom worden de volgende stappen aanbevolen:

  • Controleer uw netwerkaanvragen en-antwoorden op extra gegevens die alleen voor een telefoon-app
  • grote afbeeldingen verkleinen voordat u ze over een netwerk verzendt naar een watch

zie Toegang tot het netwerk met hoge bandbreedte voor gevallen waarin een netwerk met hoge bandbreedte nodig is.

aanvullende codemonsters

het WearVerifyRemoteApp-Monster toont verder het gebruik aan van de API ‘ s die op deze pagina worden behandeld.

You might also like

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.