Android ayarları

Android platformunda, Android işletim sistemi tarafından kullanılan bir uygulama özellikleri dosyası olan Android uygulaması bildirimine bilgi eklemek için uygulama tanımlayıcısının android öğesini kullanabilirsiniz. ADT genellikle APK paketi oluşturduğunuzda Android Manifest.xml dosyasını otomatik olarak oluşturur. AIR belirli özelliklerin çalışması için gereken değerlerde bazı özellikleri ayarlar. AIR uygulama tanımlayıcısının android bölümünde ayarlanan diğer özellikler Manifest.xml dosyasının karşılık gelen bölümüne eklenir.

Not: Birçok AIR uygulaması için uygulamanızın ihtiyacı olan Android izinlerini android öğesi ile ayarlamanız gerekir ancak genellikle başka özellik ayarlamanıza gerek olmaz.

Yalnızca dize, tamsayı veya boolean değerlerini alan nitelikleri ayarlayabilirsiniz. Başvuruları uygulama paketindeki kaynaklara ayarlama işlemi desteklenmez.

Not: Çalışma zamanı, 14 veya üzerinde bir SDK sürümü gerektirir. Daha yüksek sürümler için bir uygulama oluşturmak isterseniz, Bildirimin buna uygun olarak doğru sürümle birlikte <uses-sdk android:minSdkVersion=""></uses-sdk> içerdiğinden emin olmanız gerekir.

Ayrılmış Android bildirimi ayarları

AIR uygulama ve çalışma zamanı özelliklerinin düzgün çalıştığından emin olmak için oluşturulan Android bildirim belgesinde çeşitli bildirim girişleri ayarlar. Aşağıdaki ayarları tanımlayamazsınız:

bildirim öğesi

Bildirim öğesinin aşağıdaki niteliklerini ayarlayamazsınız:

  • package

  • android:versionCode

  • android:versionName

  • xmlns:android

etkinlik öğesi

Ana etkinlik öğesinin aşağıdaki niteliklerini ayarlayamazsınız:

  • android:label

  • android:icon

uygulama öğesi

Uygulama öğesinin aşağıdaki niteliklerini ayarlayamazsınız:

  • android:theme

  • android:name

  • android:label

  • android:windowSoftInputMode

  • android:configChanges

  • android:screenOrientation

  • android:launchMode

Android izinleri

Android güvenlik modeli, her uygulamanın güvenlik ve gizlilik iması içeren özellikleri kullanmak için izin istemesini gerektirir. Bu izinler uygulama paketlenirken belirtilmelidir ve çalışma zamanında değiştirilemez. Android işletim sistemi, kullanıcı yüklediğinde uygulamanın hangi izinleri istediğini bildirir. Bir özellik için gerekli olan izin istenmezse, uygulamanız özelliğe eriştiğinde Android işletim sistemi bir istisna atabilir ancak bunun garantisi verilmez. İstisnalar uygulamanıza çalışma zamanı tarafından iletilir. Sessiz bir hata oluşması durumunda, Android sistem günlüğüne bir hata mesajı eklenir.

AIR'de, Android izinlerini uygulama tanımlayıcısının android öğesinde belirtirsiniz. İzin eklemek için aşağıdaki biçim kullanılır (PERMISSION_NAME öğesinin bir Android izni adı olduğu yerlerde):

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

manifest öğesinin içindeki uses-permissions ifadeleri doğrudan Android bildirim belgesine eklenir.

Çeşitli AIR özelliklerini kullanmak için aşağıdaki izinler gerekir:

ACCESS_COARSE_LOCATION
Geolocation sınıfı aracılığıyla uygulamanın WIFI ve hücresel ağ konumu verilerine erişmesine izin verir.

ACCESS_FINE_LOCATION
Uygulamanın Geolocation sınıfı aracılığıyla GPS verilerine erişmesine izin verir.

ACCESS_NETWORK_STATE ve ACCESS_WIFI_STATE
Uygulamanın NetworkInfo sınıfının ağ bilgilerine erişmesine izin verir.

CAMERA
Uygulamanın kameraya erişmesine izin verir.
Not: Kamera özelliğini kullanmak için izin istediğinizde, Android uygulamanızın da kamera gerektirdiğini varsayar. Kamera uygulamanızın isteğe bağlı bir özelliğiyse, kamera bildirimine gerekli niteliği false olarak ayarlayarak bir uses-feature özelliği eklemeniz gerekir. Bkz. Android uyumluluk filtresi.

INTERNET
Uygulamanın ağ isteği yapmasına izin verir. Ayrıca uzaktan hata ayıklamaya izin verir.

READ_PHONE_STATE
AIR çalışma zamanının telefon çağrıları sırasında sesi kapatmasına izin verir. Uygulamanız arka planda ses oynatıyorsa bu izni ayarlamanız gerekir.

RECORD_AUDIO
Uygulamanın mikrofona erişmesine izin verir.

WAKE_LOCK ve DISABLE_KEYGUARD
Uygulamanın SystemIdleMode sınıfı ayarlarını kullanarak aygıtın uyku moduna girmesini engellemesine izin verir.

WRITE_EXTERNAL_STORAGE
Uygulamanın aygıttaki harici bellek kartına yazmasına izin verir.

Örneğin, şaşırtıcı bir şekilde tüm izinleri gerektiren bir uygulamanın izinlerini ayarlamak için aşağıdakini uygulama tanımlayıcıya ekleyebilirsiniz:

<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>

Android özel URI şemaları

AIR uygulamasını bir web sayfasından veya yerel bir Android uygulamasından başlatmak için özel bir URI şemasını kullanabilirsiniz. Özel URI desteği Android bildiriminde belirtilen hedef filtrelerine bağlıdır. Bu nedenle bu teknik diğer platformlarda kullanılamaz.

Özel URI kullanmak için <android> bloğunda uygulama tanımlayıcısına hedef filtresi ekleyin. Aşağıdaki örnekte iki intent-filter öğesi de belirtilmelidir. Özel şemanızın URI dizesini yansıtmak için <data android:scheme="my-customuri"/> ifadesini düzenleyin.

<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>

Hedef filtresi, Android işletim sistemine uygulamanızın belirli bir eylemi gerçekleştirmek için mevcut olduğunu bildirir. Özel URI durumunda, bu kullanıcının URI şemasını kullanarak bir bağlantıyı tıklattığı anlamına gelir (ve tarayıcı bu durumu nasıl işleyeceğini bilmiyordur).

Uygulamanız özel bir URI aracılığıyla başlatıldığında NativeApplication nesnesi bir invoke olayı gönderir. Sorgu parametreleri de dahil olmak üzere bağlantının URL'si InvokeEvent nesnesinin arguments dizisine yerleştirilir. Herhangi bir sayıda hedef filtresi kullanabilirsiniz.

Not: Bir StageWebView örneğindeki bağlantılar özel bir URI şeması kullanan URL'leri açamaz.

Android uyumluluk filtresi

Android işletim sistemi, uygulamanızın belirli bir aygıtla uyumlu olup olmadığını belirlemek için uygulama bildirim dosyasında birkaç öğe kullanır. Bu bilgiyi bildirime eklemek isteğe bağlıdır. Bu öğeleri dahil etmezseniz uygulamanız herhangi bir Android aygıtına yüklenebilir. Ancak, herhangi bir Android aygıtında düzgün çalışmayabilir. Örneğin, kamera uygulaması kameraya sahip olmayan bir telefonda faydalı olmaz.

Filtreleme için kullanabileceğiniz Android bildirim etiketleri şunları içerir:

  • supports-screens

  • uses-configuration

  • uses-feature

  • uses-sdk (AIR 3 veya üstünde)

Kamera uygulamaları

Uygulamanız için kamera izni isterseniz, Android uygulamanın otomatik odak ve flaş gibi tüm mevcut kamera özelliklerini gerektirdiğini varsayar. Uygulamanız tüm kamera özelliklerini gerektirmiyorsa veya kamera isteğe bağlı bir özellikse, bu özelliklerin isteğe bağlı olduğunu belirtmek için kameranın çeşitli uses-feature öğelerini ayarlamanız gerekir. Aksi takdirde, bir özelliğe sahip olmayan veya kameraya sahip olmayan kullanıcılar Android Market'ta uygulamanızı bulamaz.

Aşağıdaki örnek, kamera için nasıl izin isteneceğini ve tüm kamera özelliklerinin nasıl isteğe bağlı yapılacağını gösterir:

<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>

Ses kaydı uygulamaları

Ses kaydetmek için izin isterseniz Android uygulamanın mikrofon da gerektirdiğini varsayar. Ses kaydı uygulamanızın isteğe bağlı bir özelliğiyse, mikrofonun gerekli olmadığını belirtmek için bir uses-feature etiketi ekleyebilirsiniz. Aksi takdirde, mikrofonsuz aygıta sahip kullanıcılar Android Market'ta bulamaz.

Aşağıdaki örnek, mikrofon donanımını isteğe bağlı bir özellik yaparken nasıl mikrofon kullanmak için izin istenileceğini gösterir:

<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>

Yükleme konumu

Android manifest öğesinin installLocation niteliğini auto veya preferExternal olarak ayarlayarak uygulamanızın harici bellek kartında yüklenmesine veya buraya taşınmasına izin verebilirsiniz:

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

Android işletim sistemi, uygulamanızın harici belleğe yükleneceğinin garantisini vermez. Bir kullanıcı ayrıca sistem ayarları uygulamasını kullanarak uygulamayı dahili ve harici bellek arasında taşıyabilir.

Harici belleğe yüklendiğinde bile, uygulama deposu dizininin içerikleri, paylaşılan nesneler ve geçici dosyalar gibi uygulama önbelleği ve kullanıcı verileri dahili bellekte depolanır. Fazla dahili bellek kullanmayı engellemek için uygulama depolama dizinine kaydettiğiniz veriler konusunda seçici olun. Büyük miktardaki veriler File.userDirectory veya File.documentsDirectory konumları (ikisi de Android'de SD kartın köküne eşlenir) kullanılarak SD Karta kaydedilmelidir.

Bir StageWebView nesnesinde Flash Player ve diğer eklentileri etkinleştirme

Android 3.0 ve üstünde, bir StageWebView nesnesinde eklenti içeriğinin görüntülenebilmesi için uygulama Android uygulama öğesinde donanım hızlandırmayı etkinleştirmelidir. Eklentiyle görüntü oluşturmayı etkinleştirmek için application öğesinin android:hardwareAccelerated niteliğini true olarak ayarlayın:

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

Renk derinliği

AIR 3 ve üstünde, çalışma zamanı ekranı 32 bit renkler oluşturacak şekilde ayarlar. AIR'nin önceki sürümlerinde çalışma zamanı 16 bit renk kullanır. Uygulama tanımlayıcısının <colorDepth> öğesini kullanarak çalışma zamanına 16 bit rengi kullanma talimatı verebilirsiniz:

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

16 bit renk derinliğini kullanmak oluşturma performansını arttırır, ancak rengin aslına uygunluğu azalabilir.