Android-inställningar

På Android-plattformen kan du använda elementet android i programbeskrivningen för att lägga till information i Androids manifestfil, som är en programegenskapsfil som används av operativsystemet Android. Android-filen Manifest.xml genereras automatiskt i ADT när du skapar APK-paketet. AIR anger ett antal egenskaper till de värden som krävs för att vissa funktioner ska fungera. Alla andra egenskaper som anges i android-avsnittet av AIR-programbeskrivningen läggs till i motsvarade avsnitt i filen Manifest.xml.

Obs! För de flesta AIR-program måste du ange de Android-behörigheter som krävs för ditt program i elementet android , men för det mesta behöver du inte ange några andra egenskaper.

Du kan bara ange attribut som accepterar strängvärden, heltalsvärden eller booleska värden. Du kan inte ange referenser till resurser i programpaketet.

Obs! För körmiljön krävs en SDK med version 14 eller senare. Om du vill skapa ett program enbart för senare versioner, ska du kontrollera att manifestet innehåller <uses-sdk android:minSdkVersion=""></uses-sdk> och tillämplig version.

Reserverade inställningar i Androids manifestfil

AIR anger flera manifest-poster i den genererade manifestfilen för Android för att garantera att programmet och körningsfunktionerna fungerar korrekt. Du kan inte definiera följande inställningar:

manifest-element

Du kan inte ange följande attribut för manifest-elementet:

  • package

  • android:versionCode

  • android:versionName

  • xmlns:android

activity-element

Du kan inte ange följande attribut för det huvudsakliga activity-elementet:

  • android:label

  • android:icon

application-element

Du kan inte ange följande attribut för application-elementet:

  • android:theme

  • android:name

  • android:label

  • android:windowSoftInputMode

  • android:configChanges

  • android:screenOrientation

  • android:launchMode

Android-behörigheter

Android-säkerhetsmodellen kräver att alla program begär rätt behörighet för att använda funktioner som påverkar säkerheten eller användarens integritet. Dessa behörigheter måste anges när programmet paketeras och kan inte ändras vid körning. Via Android-operativsystemet får användaren veta vilken behörighet ett program begär när användaren installerar det. Om en behörighet som krävs för en funktion inte begärs kan Android-operativsystemet generera ett undantagsfel när ditt program försöker använda den funktionen, men det är inte säkert. Undantagsfel skickas till ditt program av miljön. Om det uppstår ett tyst fel läggs ett meddelande om behörighetsfel till i Android-systemloggen.

I AIR anger du Android-behörigheter i elementet android i programbeskrivningen. Följande format används för att lägga till behörigheter (där PERMISSION_NAME är namnet på en Android-behörighet):

<android> 
                            <manifestAdditions> 
                            <![CDATA[ 
                            <manifest> 
                            <uses-permission android:name="android.permission.PERMISSION_NAME" /> 
                            </manifest> 
                            ]]> 
                            </manifestAdditions> 
                            </android>

Satserna uses-permissions i manifest -elementet läggs till direkt i Androids manifestfil.

Följande behörigheter krävs för att använda olika AIR-funktioner:

ACCESS_COARSE_LOCATION
Tillåter programmet att komma åt platsdata för WIFI och mobilnätverk via klassen Geolocation.

ACCESS_FINE_LOCATION
Tillåter programmet att komma åt GPS-data via klassen Geolocation.

ACCESS_NETWORK_STATE och ACCESS_WIFI_STATE
Tillåter programmet att komma åt nätverksinformation via klassen NetworkInfo.

CAMERA
Tillåter programmet att komma åt kameran.
Obs! När ditt program begär behörighet att använda kamerafunktionen antar Android att programmet också behöver kameran. Om kameran är en valfri funktion i ditt program bör du lägga till ett uses-feature -element i manifestet för kameran och ange attributet required som false . Läs mer i Kompatibilitetsfiltrering för Android .

INTERNET
Tillåter programmet att utföra nätverksbegäranden och fjärrfelsökning.

READ_PHONE_STATE
Tillåter att AIR-miljön stänger av ljudet under telefonsamtal. Du bör ange den här behörigheten om programmet spelar upp ljud när det är i bakgrunden.

RECORD_AUDIO
Tillåter programmet att komma åt mikrofonen.

WAKE_LOCK och DISABLE_KEYGUARD
Tillåter att programmet hindrar enheten från att försättas i viloläge via inställningarna för klassen SystemIdleMode.

WRITE_EXTERNAL_STORAGE
Tillåter programmet att skriva till enhetens externa minneskort.

Om du till exempel vill ange behörigheter för ett program som behöver alla behörigheter kan du lägga till följande i programbeskrivningen:

<android> 
                            <manifestAdditions> 
                            <![CDATA[ 
                            <manifest> 
                            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
                            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
                            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
                            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
                            <uses-permission android:name="android.permission.CAMERA" /> 
                            <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 
                            <uses-permission android:name="android.permission.INTERNET" /> 
                            <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
                            <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
                            <uses-permission android:name="android.permission.WAKE_LOCK" /> 
                            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
                            </manifest> 
                            ]]> 
                            </manifestAdditions> 
                            </android>

Anpassade URI-scheman för Android

Du kan använda ett anpassat URI-schema för att starta ett AIR-program från en webbsida eller ett Android-program. Stödet för anpassade URI-scheman beror på vilka intent-filter som angetts i Androids manifestfil, så den här tekniken kan inte användas på andra plattformar.

Om du vill använda en anpassad URI lägger du till ett intent-filter i programbeskrivningen inuti <android> -blocket. Båda intent-filter -elementen i följande exempel måste anges. Redigera satsen <data android:scheme=" my-customuri "/> så att den speglar URI-strängen för det anpassade schemat.

<android> 
                            <manifestAdditions> 
                            <![CDATA[ 
                            <manifest> 
                            <application> 
                            <activity> 
                            <intent-filter> 
                            <action android:name="android.intent.action.MAIN"/> 
                            <category android:name="android.intent.category.LAUNCHER"/> 
                            </intent-filter> 
                            <intent-filter> 
                            <action android:name="android.intent.action.VIEW"/> 
                            <category android:name="android.intent.category.BROWSABLE"/> 
                            <category android:name="android.intent.category.DEFAULT"/> 
                            <data android:scheme="my-customuri"/> 
                            </intent-filter> 
                            </activity> 
                            </application> 
                            </manifest> 
                            ]]> 
                            </manifestAdditions> 
                            </android>

Ett intent-filter talar om för Android-operativsystemet att ditt program är tillgängligt för att utföra en viss åtgärd. När det gäller en anpassad URI betyder det att användaren har klickat på en länk med det URI-schemat (och webbläsaren kan inte hantera den).

När ditt program anropas via en anpassad URI skickar NativeApplication-objektet en invoke -händelse. URL:en för den länken, inklusive frågeparametrar, placeras i arguments -arrayen för InvokeEvent-objektet. Du kan använda valfritt antal intent-filter.

Obs! Länkar i en StageWebView-instans kan inte öppna URL:er där egna URI-scheman används.

Kompatibilitetsfiltrering för Android

I Android-operativsystemet används ett antal element i programmets manifestfil för att avgöra om ditt program är kompatibelt med en viss enhet. Det är valfritt att lägga till den här informationen i manifestfilen. Om du inte inkluderar de här elementen kan ditt program installeras på alla Android-enheter. Det kan dock hända att det inte fungerar som det ska på alla Android-enheter. Ett kameraprogram är till exempel inte särskilt användbart på en telefon som saknar kamera.

De Android Manifest-taggar som du kan använda för filtrering omfattar:

  • supports-screens

  • uses-configuration

  • uses-feature

  • uses-sdk (i AIR 3+)

Kameraprogram

Om du begär kamerabehörighet för ditt program antar Android att programmet behöver alla tillgängliga kamerafunktioner, inklusive autofokus och blixt. Om ditt program inte behöver alla kamerafunktioner, eller om kameran är en valfri funktion, bör du ange uses-feature -elementen för kameran för att tala om att dessa är valfria. Annars kommer användare vars enheter saknar en funktion, eller saknar kamera helt, inte att kunna hitta ditt program på Android Market.

Följande exempel visar hur du begär behörigheter för kameran och anger alla kamerafunktioner som valfria:

<android> 
                                <manifestAdditions> 
                                <![CDATA[ 
                                <manifest> 
                                <uses-permission android:name="android.permission.CAMERA" /> 
                                <uses-feature android:name="android.hardware.camera" android:required="false"/> 
                                <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> 
                                <uses-feature android:name="android.hardware.camera.flash" android:required="false"/> 
                                </manifest> 
                                ]]> 
                                </manifestAdditions> 
                                </android>

Ljudinspelningsprogram

Om du begär behörighet att spela in ljud antar Android även att programmet behöver en mikrofon. Om ljudinspelning är en valfri funktion i ditt program kan du lägga till en uses-feature-tagg för att ange att mikrofonen inte behövs. Annars kommer användare, vars enheter saknar en mikrofon, inte att kunna hitta ditt program på Android Market.

Följande exempel visar hur du begär behörighet att använda mikrofonen samtidigt som mikrofonmaskinvaran förblir valfri:

<android> 
                                <manifestAdditions> 
                                <![CDATA[ 
                                <manifest> 
                                <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
                                <uses-feature android:name="android.hardware.microphone" android:required="false"/> 
                                </manifest> 
                                ]]> 
                                </manifestAdditions> 
                                </android>

Installationsplats

Du kan tillåta att ditt program installeras eller flyttas till ett externt minneskort genom att ange attributet installLocation för Androids manifest -elementet som antingen auto eller preferExternal :

<android> 
                            <manifestAdditions> 
                            <![CDATA[ 
                            <manifest android:installLocation="preferExternal"/> 
                            ]]> 
                            </manifestAdditions> 
                            </android>

Det finns dock ingen garanti för att ditt program installeras på det externa minneskortet. En användare kan också flytta programmet mellan interna och externa minneskort med programmet för systeminställningar.

Även om programmet installeras på ett extern minneskort lagras programcache och användardata (t.ex. innehållet i katalogen app-storage, delade objekt och tillfälliga filer) i det interna minnet. För att undvika att använda för mycket internt minne bör du vara selektiv när det gäller vilka data som sparas i programkatalogen. Stora mängder data bör sparas på SD-kortet med hjälp av platserna File.userDirectory eller File.documentsDirectory (som båda mappar till roten på SD-kortet på Android).

Aktivera Flash Player och andra plugin-program i ett StageWebView-objekt

I Android 3.0+ måste ett program aktivera maskinvaruaccelerationen i Android-programelementet för att plugin-innehåll ska visas i ett StageWebView-objekt. Du aktiverar plugin-återgivning genom att ange att attributet android:hardwareAccelerated i application -elementet ska vara true :

<android> 
                            <manifestAdditions> 
                            <![CDATA[ 
                            <manifest> 
                            <application android:hardwareAccelerated="true"/> 
                            </manifest> 
                            ]]> 
                            </manifestAdditions> 
                            </android>

Färgdjup

I AIR 3 och senare ställs visningen in för att i miljön återge 32-bitars färger. I tidigare versioner av AIR används i miljön 16-bitars färg. Genom att använda elementet <colorDepth> i programbeskrivningen kan du i miljön ange att 16-bitars färg ska användas:

<android> 
                            <colorDepth>16bit</colorDepth> 
                            <manifestAdditions>...</manifestAdditions> 
                            </android>

Om du använder 16-bitars färgdjup kan återgivningsprestandan förbättras, men på bekostnad av färgåtergivningen.