fristående Wear-appar

en Wear OS-app kan fungera oberoende av en telefon. Användare kan slutföra uppgifter på en klocka utan åtkomst till en Android-eller iOS-telefon.

se följande relaterade resurser:

  • verifiera Fjärrappprov

planera dina appar

du kan använda funktionen multiple APK (multi-APK) i Google Play för att publicera mer än en APK under samma programlista. En klocka APK ska distribueras med den funktionen; bädda inte in en klocka APK i en telefon APK. Mer information om hur du konfigurerar appen för distribution via Google Play Store finns i paketera och distribuera Wear-appar och hur flera APK-filer fungerar.

Obs: För att kvalificera sig för marknadsföring i Google Play Store på slitage (det vill säga i on-watch Play Store), din app måste fungera oberoende av en telefon. iOS samt Android stöd krävs.

generellt är minimi-och mål-API-nivån för en fristående app och för Wear 2.0 nivå 25. Minsta SDK-nivå kan bara vara 23 Om du använder samma APK för Wear 1.0 och 2.0 (och därmed har en inbäddad Wear 1.0 APK).

Obs: på grund av ett latensproblem som påverkar en apps tillgänglighet på slitage 1.X Klockor, om du bygger en fristående Wear 2.0 APK och kommer att fortsätta att ha en Wear 1.0 APK, gör båda följande:

  • ge en fristående version av Wear APK, och
  • Fortsätt bädda in en version av Wear APK i telefonen APK

Varning: Om du publicerar en uppdatering till din befintliga, produktion telefon APK som har tagit bort en inbäddad Wear APK, produktionsanvändare som uppdaterar telefonen APK innan du installerar din fristående Wear APK kommer att förlora sin befintliga Wear app och dess data. Om du publicerar en uppdatering till din befintliga, produktion telefon APK, fortsätta att bädda in din klocka APK i telefonen APK.

run-time behörigheter krävs för fristående program.

information om nätverksförfrågningar och nätverksåtkomst med hög bandbredd finns i nätverksåtkomst och synkronisering.

identifiera en app som fristående

Wear-appar måste ha ETT meta-data – element i Android Manifest-filen, som ett barn av <application> – elementet. Namnet på elementet meta-data är com.google.android.wearable.standalone och värdet måste vara trueeller false. Elementet indikerar om din Klockapp är en fristående app och därför inte kräver en Android-app på telefonsidan för att fungera. Om inställningen för elementet är true kan din app göras tillgänglig i Play Store på klockor som är kopplade till iPhones, så länge dina aktiva APK-filer i alla kanaler (t.ex. i betakanalen) har elementet inställt på true. Om inte alla dina APK-filer (alfa, beta och produktion) som för närvarande visas för användare har ovanstående inställning kommer din app inte att vara tillgänglig när en användare söker på en klocka som är kopplad till en iPhone.

en Klockapp kan betraktas som en av följande:

  • helt oberoende av en telefonapp
  • halvoberoende (en telefonapp krävs inte och ger endast valfria funktioner)
  • beroende på en telefonapp

om en Klockapp är helt oberoende eller halvoberoende anses den vara i den fristående kategorin. Du måste ange denna kategorisering till Google Play store genom att ställa in värdet på detta meta-data – element till true:

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

eftersom en fristående app (det vill säga en oberoende eller halvoberoende app) kan installeras av en iPhone-användare eller en användare av en Android-telefon som saknar Play Store, bör watch-appen vara användbar utan telefonappen.

om en Klockapp beror på en telefonapp, Ställ in värdet för ovanstående meta-data – element till false. Att ställa in elementet till false betyder att watch-appen endast ska installeras på en klocka som är ihopkopplad med en telefon som har Play Store.

Obs: även om värdet är false kan watch-appen installeras innan telefonappen installeras. Därför, om en watch-app upptäcker att en följeslagare saknar en nödvändig telefonapp, bör watch-appen uppmana användaren att installera telefonappen.

definiera en app som en Wear-app

du måste se till att <uses-feature> – taggen är definierad i Android Manifest-filen i din app. Det måste ange att det är en watch app, till exempel android:name="android.hardware.type.watch" enligt följande:

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

delad kod och datalagring

kod kan delas mellan en Wear-app och en telefonapp. Eventuellt kan kod som är specifik för en formfaktor vara i en separat modul.

till exempel kan gemensam kod för nätverk vara i ett delat bibliotek.

du kan använda vanliga Android-lagrings-API: er för att lagra data lokalt, som på en telefon. Du kan till exempel använda API: erna SharedPreferences eller biblioteket Room persistence.

Upptäck din app på en annan enhet

din Klockapp kan upptäcka om motsvarande telefonapp är tillgänglig och vice versa.

din telefonapp eller Klockapp kan använda CapabilityClient för att annonsera appens närvaro till en parad enhet. Det kan göra det statiskt och dynamiskt. När en app finns på en nod i en användares Wear-nätverk (dvs. på en telefon, ihopparad klocka eller i molnet) gör CapabilityClient att en annan app kan upptäcka om den är installerad. Mer information finns i annonsera kapacitet.

om en av dina appar inte kan upptäcka den andra kan du aktivera en användare att öppna Play Store-listan på sin fjärrenhet. Detta är en lösning för watch apps som kräver deras följeslagare telefon app närvaro för att fungera korrekt. En förutsättning är att kontrollera Play Store närvaro på fjärrenheten.

Observera att inte alla telefoner stöder Play Store (som iPhones, etc.).

i det här avsnittet beskrivs bästa praxis för dessa scenarier:

  • din fristående Klockapp behöver din telefonapp
  • din telefonapp behöver din fristående Klockapp

granska provet som visar den här funktionen. För mer information om de klasser som beskrivs nedan, se Wear API Reference. I den referensen finns också information om klassen PhoneDeviceType, som innehåller en getPhoneDeviceType() – metod som gör att din Wear-app kan kontrollera om en följeslagare är en Android-eller iOS-enhet.

ange kapacitetsnamn för att upptäcka dina appar

för appen som motsvarar varje enhetstyp (klocka eller telefon), ange en unik sträng för kapacitetsnamnet i filen res/values/wear.xml.

till exempel i din mobilmodul kan filen wear.xml innehålla följande:

i din wear-modul innehåller filen wear.xml ett annat värde för kapacitetsnamnet, till exempel följande:

mer information finns i annonsera funktioner.

app upptäckt och öppna en webbadress från en klocka

din klocka app kan upptäcka om en användares följeslagare telefon har telefonen app:

  1. använd CapabilityClient för att kontrollera om din telefonapp är installerad på den parade telefonen. För mer information, se provet.
  2. om din telefonapp inte är installerad på telefonen använder du metoden PhoneDeviceType.getPhoneDeviceType() för att kontrollera telefonens typ.
  3. om PhoneDeviceType.DEVICE_TYPE_ANDROID returneras är telefonen en Android-telefon. Ring RemoteIntent.startRemoteActivity() på Slitageenheten för att öppna app store på telefonen. Använd market URI för din telefonapp (som kan skilja sig från din telefon URI). Använd till exempel en URI på marknaden som: market://details?id=com.example.android.wearable.wear.finddevices
  4. om PhoneDeviceType.DEVICE_TYPE_IOS returneras betyder det att telefonen är en iOS-telefon (utan Play Store tillgänglig). Öppna App Store på iPhone genom att ringa RemoteIntent.startRemoteActivity() på Slitageenheten. Du kan ange appens iTunes-URL, till exempel . På en iPhone från Wear OS kan du inte programmatiskt avgöra om din telefonapp är installerad. Som en bästa praxis, ge en mekanism för användaren (t.ex. en knapp) för att manuellt utlösa öppningen av App Store.

Observera att med hjälp av API: n RemoteIntent som beskrivs ovan kan du ange att valfri URL ska öppnas på telefonen från klockan och ingen telefonapp krävs.

Detaljer för att upptäcka typen av parad telefon

här är ett utdrag som använder metoden getPhoneDeviceType() för att kontrollera vilken typ av telefon klockan är parad till:

Kotlin

var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)

Java

int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);

värdet som returneras med getPhoneDeviceType() – metoden är ett av följande:

returvärde beskrivning
DEVICE_TYPE_ANDROID companion phone är en Android-enhet.
DEVICE_TYPE_IOS companion-telefonen är en iOS-enhet.
DEVICE_TYPE_ERROR_UNKNOWN ett fel uppstod vid bestämning av typen av den parade telefonen, en annan kontroll bör göras senare.

app detection starta från en Android-telefon

din Android-telefon kan upptäcka om en användares Wear-enheter har din watch-app:

  1. använd NodeClient och hitta alla klockor som är anslutna till användarens telefon. För mer information, se provet.
  2. använd CapabilityClient, kontrollera vilken av användarens klockor som har din app installerad.
  3. om din app inte är installerad på alla användarens klockor (jämför resultaten från Steg 1 med resultaten från Steg 2), Låt användaren öppna Play Store på de återstående Slitageenheterna från telefonen via metoden RemoteIntent.startRemoteActivity(). Använd specifikt URI för marknaden för Wear-appen (som kan skilja sig från din telefonapps URI). Använd till exempel en URI på marknaden som: market://details?id=com.example.android.wearable.wear.finddevices

platsdata för klockor ihopkopplade till iPhones

för klockor ihopkopplade till iPhones bör utvecklare använda FLP (Fused Location Provider) för att få platsdata på en klocka. Se upptäcka plats på slitage.

om companion-telefonen är tillgänglig använder FLP companion-telefonen för platsdata.

hämta endast nödvändiga data

Generellt bör du bara få de nödvändiga uppgifterna när du hämtar data från internet. Annars kan du införa onödig latens, minnesanvändning och batterianvändning.

när en klocka är ansluten via en Bluetooth LE-anslutning kan din app ha tillgång till en bandbredd på endast 4 kilobyte per sekund, beroende på klockan. Därför rekommenderas följande steg:

  • granska dina nätverksförfrågningar och svar för extra data som bara är för en telefonapp
  • krympa stora bilder innan du skickar dem över ett nätverk till en klocka

för fall där ett nätverk med hög bandbredd behövs, se nätverksåtkomst med hög bandbredd.

ytterligare kodexempel

wearverifyremoteapp-provet visar vidare användningen av API: erna som omfattas av denna sida.

You might also like

Lämna ett svar

Din e-postadress kommer inte publiceras.