Google Play, uygulamanızı donanım ve yazılım özelliği şartlarını karşılamayan cihazlardan filtrelemek için uygulama manifestinizde tanımlanan <uses-feature>
öğelerini kullanır.
Uygulamanızın gerektirdiği özellikleri belirterek Google Play'in uygulamanızı tüm kullanıcılara sunmak yerine yalnızca cihazları uygulamanın özellik şartlarını karşılayan kullanıcılara sunmasını sağlarsınız.
Google Play'in filtreleme için temel olarak özellikleri nasıl kullandığı hakkında önemli bilgiler için Google Play ve özelliklere dayalı filtreleme bölümüne bakın.
- söz dizimi:
-
<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" />
- Şunlarda bulunur:
<manifest>
- description:
Uygulama tarafından kullanılan tek bir donanım veya yazılım özelliğini belirtir.
<uses-feature>
beyanının amacı, uygulamanızın bağlı olduğu donanım ve yazılım özelliklerini harici bir tüzel kişiye bildirmektir. Öğe, uygulamanızın beyan edilen özelliği gerektirip gerektirmediğini ve bu özellik olmadan çalışamadığını ya da bu özelliği tercih edip edemediğini belirtmenize olanak tanıyan birrequired
özelliği sunar.Özellik desteği Android cihazlara göre değişiklik gösterebileceğinden
<uses-feature>
öğesi, uygulamanın kullandığı cihaz değişkeni özellikleri tanımlamasına olanak tanıyan önemli bir rol oynar.Uygulamanızın tanımladığı kullanılabilir özellikler grubu, Android
PackageManager
tarafından kullanıma sunulan özellik sabitleri grubuna karşılık gelir. Özellik sabitleri bu dokümanın Özellikler referansı bölümünde listelenir.Her özelliği ayrı bir
<uses-feature>
öğesinde belirtmeniz gerekir. Bu nedenle, uygulamanız birden fazla özellik gerektiriyorsa birden fazla<uses-feature>
öğesi beyan eder. Örneğin, cihazda hem Bluetooth hem de kamera özelliklerini gerektiren bir uygulama şu iki öğeyi bildirir:<uses-feature android:name="android.hardware.bluetooth" android:required="true" /> <uses-feature android:name="android.hardware.camera.any" android:required="true" />
Genel olarak, uygulamanızın gerektirdiği tüm özellikler için her zaman
<uses-feature>
öğelerini beyan edin.Tanımlanmış
<uses-feature>
öğeleri yalnızca bilgilendirme amaçlıdır. Yani Android sisteminin kendisi, uygulama yüklemeden önce cihazda eşleşen özellik desteği olup olmadığını kontrol etmez.Ancak Google Play gibi diğer hizmetler ve uygulamalar, uygulamanızı işleme veya uygulamanızla etkileşime geçme kapsamında uygulamanızın
<uses-feature>
beyanlarını kontrol edebilir. Bu nedenle, uygulamanızın kullandığı tüm özellikleri bildirmeniz çok önemlidir.Bazı özelliklerde, özelliğin sürümünü (ör. kullanılan Open GL sürümü) tanımlamanıza olanak tanıyan belirli bir özellik olabilir (
glEsVersion
ile belirtilir). Bir cihazda bulunan veya bulunmayan diğer özellikler (ör. kamera)name
özelliği kullanılarak belirtilir.<uses-feature>
öğesi yalnızca API düzeyi 4 veya üstünü çalıştıran cihazlarda etkinleştirilse deminSdkVersion
3 veya daha düşük olsa bile bu öğeleri tüm uygulamalara ekleyin. Platformun eski sürümlerini çalıştıran cihazlar bu öğeyi yoksayar.Not: Bir özelliği tanımlarken uygun izinleri de istemeniz gerektiğini unutmayın. Örneğin, uygulamanızın kamera API'sine erişebilmesi için
CAMERA
iznine ihtiyacı vardır. İzin isteğinde bulunmak, uygulamanızın uygun donanıma ve yazılıma erişmesine olanak tanır. Uygulamanızın kullandığı özellikleri belirtmek, cihaz uyumluluğunun doğru olmasını sağlar.- özellikleri:
-
-
android:name
- Uygulama tarafından kullanılan tek bir donanım veya yazılım özelliğini tanımlayıc Geçerli özellik değerleri Donanım özellikleri ve Yazılım özellikleri bölümlerinde listelenir. Bu özellik değerleri büyük/küçük harfe duyarlıdır.
-
android:required
-
Uygulamanın
android:name
bölümünde belirtilen özelliği gerektirip gerektirmediğini belirten boole değeri.- Bir özellik için
android:required="true"
beyan etmek, belirtilen özellik cihazda bulunmadığında uygulamanın çalışamayacağını veya çalışmak üzere tasarlanmadığını gösterir. - Bir özellik için
android:required="false"
beyan etmek, uygulamanın cihazda mevcutsa özelliği kullandığını ancak gerekirse belirtilen özellik olmadan çalışacak şekilde tasarlandığını gösterir.
android:required
için varsayılan değer"true"
'dur. - Bir özellik için
android:glEsVersion
- Uygulamanın gerektirdiği OpenGL ES sürümü. Üstteki 16 bit ana sayıyı, alttaki 16 bit ise alt sayıyı temsil eder. Örneğin, OpenGL ES 2.0 sürümünü belirtmek için değeri "0x00020000" olarak, OpenGL ES 3.2 sürümünü belirtmek için ise değeri "0x00030002" olarak ayarlarsınız.
Bir uygulama, manifest dosyasında en fazla bir
android:glEsVersion
özelliği belirtir. Birden fazlaandroid:glEsVersion
belirtilirse sayısal olarak en yüksek değere sahipandroid:glEsVersion
kullanılır ve diğer tüm değerler yoksayılır.Bir uygulamada
android:glEsVersion
özelliği belirtilmemişse uygulamanın yalnızca OpenGL ES 1.0 gerektirdiği kabul edilir. OpenGL ES 1.0, Android destekli tüm cihazlarda desteklenir.Bir uygulama, bir platform belirli bir OpenGL ES sürümünü destekliyorsa sayısal olarak daha düşük tüm OpenGL ES sürümlerini de desteklediğini varsayabilir. Bu nedenle, hem OpenGL ES 1.0 hem de OpenGL ES 2.0 gerektiren bir uygulama için OpenGL ES 2.0 gerektirdiğini belirtin.
Çeşitli OpenGL ES sürümlerinden herhangi biriyle çalışabilen bir uygulama için, yalnızca gerektirdiği OpenGL ES'in sayısal olarak en düşük sürümünü belirtin. Daha yüksek bir OpenGL ES sürümünün kullanılıp kullanılamayacağını çalışma zamanında kontrol edebilir.
OpenGL ES'i kullanma hakkında daha fazla bilgi edinmek için (ör. desteklenen OpenGL ES sürümünü çalışma zamanında nasıl kontrol edeceğiniz) OpenGL ES API kılavuzuna bakın.
-
- kullanıma sunulduğu sürüm:
- API Düzeyi 4
- Ayrıca:
Google Play ve özelliklere dayalı filtreleme
Google Play, kullanıcıların yalnızca cihazlarıyla uyumlu uygulamaları görmesini ve indirmesini sağlamak için kullanıcılara görünen uygulamaları filtreler. Uygulamaları filtreleme yöntemlerinden biri, özellik uyumluluğudur.
Google Play, bir uygulamanın belirli bir kullanıcının cihazıyla özellik uyumluluğunu belirlemek için şunları karşılaştırır:
- Uygulamanın manifest dosyasında
<uses-feature>
öğelerinde beyan edildiği gibi uygulamanın ihtiyaç duyduğu özellikler. - Salt okuma sistem özellikleri kullanılarak raporlanan, cihazda donanım veya yazılım olarak kullanılabilen özellikler.
Android Paket Yöneticisi, özellikleri doğru bir şekilde karşılaştırmak için hem uygulamaların hem de cihazların özellik şartlarını ve desteğini belirtmek için kullandığı ortak bir özellik sabitleri grubu sağlar. Kullanılabilir özellik sabitleri bu belgedeki Özellikler referansı bölümünde ve PackageManager
sınıfının dokümanlarında listelenmiştir.
Kullanıcı Google Play'i başlattığında uygulama, getSystemAvailableFeatures()
çağrısını yaparak cihazda kullanılabilen özelliklerin listesi için paket yöneticisini sorgular. Ardından Store uygulaması, kullanıcı için oturum oluştururken özellik listesini Google Play'e iletir.
Google Play Console'a her uygulama yüklediğinizde Google Play, uygulamanın manifest dosyasını tarar. <uses-feature>
öğelerini arar ve bunları bazı durumlarda <uses-sdk>
ve <uses-permission>
öğeleri gibi diğer öğelerle birlikte değerlendirir. Uygulamanın gerekli özellik grubunu belirledikten sonra bu listeyi, uygulama APK'sı ve uygulama sürümüyle ilişkili meta veri olarak dahili olarak depolar.
Kullanıcı Google Play uygulamasını kullanarak uygulama aradığında veya uygulamaya göz atarken hizmet, her uygulamanın ihtiyaç duyduğu özellikleri kullanıcının cihazındaki özelliklerle karşılaştırır. Bir uygulamanın gerekli tüm özellikleri cihazda mevcutsa Google Play, kullanıcının uygulamayı görmesine ve indirmesine izin verir.
Gerekli özellikler cihaz tarafından desteklenmiyorsa Google Play, uygulamayı kullanıcı tarafından görülmeyecek veya indirilemeyecek şekilde filtreler.
<uses-feature>
öğelerinde tanımladığınız özellikler Google Play'in uygulamanızı nasıl filtrelediğini doğrudan etkilediği için Google Play'in uygulamanın manifest dosyasını nasıl değerlendirdiğini ve gerekli özellik grubunu nasıl oluşturduğunu anlamak önemlidir. Aşağıdaki bölümlerde daha fazla bilgi verilmektedir.
Açıkça beyan edilen özelliklere göre filtreleme
Açıkça beyan edilen özellik, uygulamanızın <uses-feature>
öğesinde beyan ettiği özelliktir. API düzeyi 5 veya daha yüksek bir sürüm için derliyorsanız özellik beyanı bir android:required=["true" | "false"]
özelliği içerebilir.
Bu, uygulamanın özelliği gerektirip gerektirmediğini ve bu özellik olmadan düzgün çalışıp çalışamayacağını ("true"
) ya da mevcutsa özelliği kullandığını ancak bu özellik olmadan çalışacak şekilde tasarlandığını ("false"
) belirtmenize olanak tanır.
Google Play, açıkça beyan edilen özellikleri şu şekilde işler:
- Aşağıdaki örnekte gösterildiği gibi, bir özellik açıkça gerekli olarak beyan edilirse Google Play bu özelliği uygulama için gerekli özellikler listesine ekler. Ardından, uygulama bu özelliği sunmayan cihazlardaki kullanıcılardan filtrelenir.
<uses-feature android:name="android.hardware.camera.any" android:required="true" />
- Aşağıdaki örnekte gösterildiği gibi, bir özellik açıkça zorunlu olarak tanımlanmamışsa Google Play bu özelliği gerekli özellikler listesine eklemez. Bu nedenle, açıkça zorunlu olmayan bir özellik uygulama filtrelenirken hiçbir zaman dikkate alınmaz. Cihaz beyan edilen özelliği sağlamasa bile Google Play, başka filtreleme kuralları geçerli olmadığı sürece uygulamayı cihazla uyumlu olarak kabul eder ve kullanıcıya gösterir.
<uses-feature android:name="android.hardware.camera" android:required="false" />
- Bir özellik açıkça beyan edilir ancak
android:required
özelliği olmadan beyan edilirse Google Play, özelliğin gerekli olduğunu varsayar ve filtreleme ayarlar.
Genel olarak, uygulamanız Android 1.6 ve önceki sürümlerde çalışacak şekilde tasarlandıysa android:required
özelliği API'de kullanılamaz ve Google Play tüm android:required
beyanlarının gerekli olduğunu varsayar.<uses-feature>
Not: Bir özelliği açıkça beyan ederek ve android:required="false"
özelliğini ekleyerek, belirtilen özellik için Google Play'deki tüm filtrelemeyi etkili bir şekilde devre dışı bırakabilirsiniz.
Örtük özelliklere göre filtreleme
Yarı açık özellik, bir uygulamanın düzgün şekilde çalışması için ihtiyaç duyduğu ancak manifest dosyasında <uses-feature>
öğesinde beyan edilmeyen özelliktir. Kesin olarak söylemek gerekirse, her uygulamanın kullandığı veya ihtiyaç duyduğu tüm özellikleri her zaman bildirmesi en iyisidir. Bir uygulama tarafından kullanılan bir özellik için bildirim olmaması hata olarak kabul edilebilir.
Ancak Google Play, kullanıcılar ve geliştiriciler için bir önlem olarak her uygulamada gizli özellikleri arar ve açıkça beyan edilen özelliklerde olduğu gibi bu özellikler için filtreler oluşturur.
Bir uygulama, aşağıdakiler gibi nedenlerle bir özellik gerektirmesine rağmen bunu beyan etmeyebilir:
- Uygulama, Android kitaplığının eski bir sürümüne (Android 1.5 veya önceki sürümler) göre derlendi. Bu sürümlerde
<uses-feature>
öğesi kullanılamaz. - Geliştirici, özelliğin tüm cihazlarda mevcut olduğunu ve beyan edilmesinin gerekmediğini yanlış bir şekilde varsayıyor.
- Geliştirici, özellik beyanını yanlışlıkla atlar.
- Geliştirici, özelliği açıkça beyan ediyor ancak beyan geçerli değil. Örneğin,
<uses-feature>
öğe adında yazım hatası veyaandroid:name
özelliği için tanınmayan bir dize değeri, özellik tanımını geçersiz kılar.
Google Play, bu durumları hesaba katmak için manifest dosyasında tanımlanan diğer öğeleri (özellikle <uses-permission>
öğelerini) inceleyerek uygulamanın ima edilen özellik şartlarını keşfetmeye çalışır.
Bir uygulama donanımla ilgili izinler istiyorsa Google Play, ilgili <uses-feature>
beyanları olmasa bile uygulamanın temel donanım özelliklerini kullandığını ve bu nedenle bu özellikleri gerektirdiğini varsayar. Google Play, bu tür izinler için temel donanım özelliklerini uygulama için depoladığı meta verilere ekler ve bunlar için filtreler oluşturur.
Örneğin, bir uygulama CAMERA
iznini isterse Google Play, uygulama android.hardware.camera
için bir <uses-feature>
öğesi beyan etmese bile uygulamanın arka (dışarıya bakan) kamera gerektirdiğini varsayar. Bu nedenle Google Play, arka kamerası olmayan cihazları filtreler.
Google Play'in belirli bir ima edilen özelliğe göre filtreleme yapmasını istemiyorsanız özelliği <uses-feature>
öğesinde açıkça beyan edin ve android:required="false"
özelliğini ekleyin. Örneğin, CAMERA
izninin ima ettiği filtrelemeyi devre dışı bırakmak için aşağıdaki özellikleri tanımlayın:
<uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
Dikkat: <uses-permission>
öğelerinde istediğiniz izinler, Google Play'in uygulamanızı nasıl filtrelediğini doğrudan etkileyebilir. Özellik şartlarını ima eden izinler bölümünde, özellik şartlarını ima eden ve filtrelemeyi tetikleyen tüm izinler listelenir.
Bluetooth özelliği için özel işleme
Google Play, Bluetooth filtrelemesini belirlerken önceki örnekte açıklananlardan biraz farklı kurallar uygular.
Bir uygulama <uses-permission>
öğesinde Bluetooth iznini beyan ediyor ancak <uses-feature>
öğesinde Bluetooth özelliğini açıkça belirtmiyorsa Google Play, uygulamanın çalıştırılması için tasarlandığı Android platformunun sürümlerini <uses-sdk>
öğesinde belirtildiği şekilde kontrol eder.
Aşağıdaki tabloda gösterildiği gibi, Google Play yalnızca uygulamanın en düşük veya hedeflenen platformunu Android 2.0 (API düzeyi 5) veya üstü olarak beyan etmesi durumunda Bluetooth özelliği için filtrelemeyi etkinleştirir. Ancak Google Play, uygulama bir <uses-feature>
öğesinde Bluetooth özelliğini açıkça beyan ettiğinde normal filtreleme kurallarını uygular.
Tablo 1. Google Play, Bluetooth izni isteyen ancak Bluetooth özelliğini <uses-feature>
öğesinde belirtmeyen bir uygulama için Bluetooth özelliği şartını nasıl belirler?
minSdkVersion ...ise |
targetSdkVersion |
Sonuç |
---|---|---|
<uses-sdk> tanımlanmamışsa |
<=4 | Google Play, android.hardware.bluetooth özelliği için bildirilen destek durumuna göre uygulamayı herhangi bir cihazdan filtrelemez. |
<=4 | >=5 | Google Play, uygulamayı android.hardware.bluetooth özelliğini desteklemeyen cihazlardan (eski sürümler dahil) filtreler. |
>=5 | >=5 |
Aşağıdaki örneklerde, Google Play'in Bluetooth özelliğini işleme şekline göre farklı filtreleme efektleri gösterilmektedir.
-
İlk örnekte, eski API düzeylerinde çalışacak şekilde tasarlanmış bir uygulama Bluetooth iznini beyan ediyor ancak Bluetooth özelliğini
- Sonuç: Google Play, uygulamayı hiçbir cihazdan filtrelemez.
<uses-feature>
öğesinde beyan etmiyor.
<manifest ...> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="3" /> ... </manifest>
-
İkinci örnekte, aynı uygulama "5" hedef API düzeyini de beyan etmektedir.
- Sonuç: Google Play artık özelliğin gerekli olduğunu varsayar ve uygulamayı, platformun eski sürümlerini çalıştıran cihazlar da dahil olmak üzere Bluetooth desteği bildirmeyen tüm cihazlardan filtreler.
<manifest ...> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" /> ... </manifest>
-
Bu örnekte, aynı uygulama artık Bluetooth özelliğini açıkça belirtiyor.
- Sonuç: Önceki örnekle aynıdır: filtreleme uygulanır.
<manifest ...> <uses-feature android:name="android.hardware.bluetooth" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" /> ... </manifest>
-
Son olarak, aşağıdaki durumda aynı uygulama bir
- Sonuç: Google Play, tüm cihazlarda Bluetooth özellik desteğine göre filtrelemeyi devre dışı bırakır.
android:required="false"
özelliği ekler.
<manifest ...> <uses-feature android:name="android.hardware.bluetooth" android:required="false" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" /> ... </manifest>
Uygulamanızın gerektirdiği özellikleri test etme
Google Play'in uygulamanızı, beyan edilen özelliklerine ve izinlerine göre nasıl filtreleyeceğini belirlemek için Android SDK'ya dahil olan aapt2
aracını kullanabilirsiniz. Bunun için dump
badging
komutuyla aapt2
komutunu çalıştırın. Bu, aapt2
aracının uygulamanızın manifest dosyasını ayrıştırmasına ve uygulamanızın gerektirdiği özellikleri belirlemek için Google Play tarafından kullanılan kurallarla aynı kuralları uygulamasına neden olur.
Aracı kullanmak için aşağıdaki adımları uygulayın:
- Uygulamanızı imzasız APK olarak derleyip dışa aktarın.
Android Studio'da geliştirme yapıyorsanız uygulamanızı aşağıdaki gibi Gradle ile derleyin:
- Projeyi açın ve Çalıştır > Yapılandırmaları Düzenle'yi seçin.
- Yapılandırmaları Çalıştır/Hata Ayıkla penceresinin sol üst köşesindeki artı işaretini seçin.
- Gradle'i seçin.
- Ad alanına "İmzasız APK" yazın.
- Gradle projesi bölümünden modülünüzü seçin.
- Görevler'e "assemble" yazın.
- Yeni yapılandırmayı tamamlamak için Tamam'ı seçin.
- Araç çubuğunda İmzasız APK çalıştırma yapılandırmasının seçili olduğundan emin olun ve ardından Çalıştır > "İmzasız APK"yı çalıştır'ı seçin.
<ProjectName>/app/build/outputs/apk/
dizininde bulabilirsiniz. - Henüz PATH'inizde yoksa
aapt2
aracını bulun. SDK Tools r8 veya sonraki bir sürümü kullanıyorsanızaapt2
dosyasını<SDK>/build-tools/<tools version number>
dizininde bulabilirsiniz.Not: Mevcut en son Build-Tools bileşeni için sağlanan
aapt2
sürümünü kullanmanız gerekir. En son Derleme Araçları bileşenine sahip değilseniz Android SDK Yöneticisi'ni kullanarak indirin. - Şu söz dizimini kullanarak
aapt2
'ü çalıştırın:
$ aapt2 dump badging <path_to_exported_.apk>
Daha önce gösterilen ikinci Bluetooth örneğinin komut çıkışını aşağıda bulabilirsiniz:
$ ./aapt2 dump badging BTExample.apk package: name='com.example.android.btexample' versionCode='' versionName='' uses-permission:'android.permission.BLUETOOTH_ADMIN' uses-feature:'android.hardware.bluetooth' sdkVersion:'3' targetSdkVersion:'5' application: label='BT Example' icon='res/drawable/app_bt_ex.png' launchable activity name='com.example.android.btexample.MyActivity'label='' icon='' uses-feature:'android.hardware.touchscreen' main supports-screens: 'small' 'normal' 'large' locales: '--_--' densities: '160'
Özellikler referansı
Aşağıdaki bölümlerde donanım özellikleri, yazılım özellikleri ve belirli özellik şartlarını ima eden izin grupları hakkında referans bilgiler verilmektedir.
Donanım özellikleri
Bu bölümde, en güncel platform sürümünün desteklediği donanım özellikleri sunulmaktadır. Uygulamanızın bir donanım özelliği kullandığını veya bu özelliği gerektirdiğini belirtmek için android:name
özelliğinde "android.hardware"
ile başlayan ilgili değeri belirtin.
Her donanım özelliğini tanımladığınızda ayrı bir <uses-feature>
öğesi kullanın.
Ses donanım özellikleri
-
android.hardware.audio.low_latency
- Uygulama, ses girişi veya çıkışı işlenirken gecikmeleri azaltan cihazın düşük gecikmeli ses ardışık düzenini kullanır.
-
android.hardware.audio.output
- Uygulama, cihazın hoparlörlerini, ses jakını, Bluetooth yayın özelliklerini veya benzer bir mekanizmayı kullanarak ses iletir.
-
android.hardware.audio.pro
- Uygulama, cihazın yüksek kaliteli ses işlevini ve performans özelliklerini kullanıyor.
-
android.hardware.microphone
- Uygulama, cihazın mikrofonunu kullanarak ses kaydediyor.
Bluetooth donanım özellikleri
-
android.hardware.bluetooth
- Uygulama, genellikle Bluetooth özellikli diğer cihazlarla iletişim kurmak için cihazın Bluetooth özelliklerini kullanır.
-
android.hardware.bluetooth_le
- Uygulama, cihazın Bluetooth Düşük Enerji radyo özelliklerini kullanır.
Kamera donanım özellikleri
Not: Uygulamanızın Google Play tarafından gereksiz yere filtrelenmesini önlemek için uygulamanızın çalışabilmesi için gerekli olmayan tüm kamera özelliklerine android:required="false"
ekleyin. Aksi takdirde Google Play, özelliğin gerekli olduğunu varsayar ve özelliği desteklemeyen cihazların uygulamanıza erişmesini engeller.
Büyük ekran desteği
Bazı büyük ekranlı cihazlar tüm kamera özelliklerini desteklemez. Chromebook'larda genellikle arka (dışarıya bakan) kamera, otomatik odaklama veya flaş bulunmaz. Ancak Chromebook'larda ön (kullanıcıya bakan) kameralar bulunur ve genellikle harici kameralara bağlıdır.
Temel kamera desteği sağlamak ve uygulamanızı mümkün olduğunca çok cihazda kullanılabilir hale getirmek için uygulama manifest dosyanıza aşağıdaki kamera özelliği ayarlarını ekleyin:
<uses-feature android:name="android.hardware.camera.any" android:required="false" /> <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" />
Özellik ayarlarını, uygulamanızın kullanım alanlarını destekleyecek şekilde düzenleyin. Ancak uygulamanızı en fazla sayıda cihazda kullanılabilir hale getirmek için bir özelliğin zorunlu olup olmadığını açıkça belirtmek amacıyla her zaman required
özelliğini ekleyin.
Özellik listesi
-
android.hardware.camera.any
-
Uygulama, cihazın kameralarından birini veya cihaza bağlı harici bir kamerayı kullanır. Uygulamanız kameranın arkaya (dünya) veya öne (kullanıcı) bakmasını gerektirmiyorsa
android.hardware.camera
veyaandroid.hardware.camera.front
yerine bu özelliği kullanın.CAMERA
izni, uygulamanızınandroid.hardware.camera
iznini de kullandığı anlamına gelir.android.hardware.camera
,android:required="false"
ile birlikte beyan edilmediği sürece arka kamera zorunlu bir özelliktir. -
android.hardware.camera
-
Uygulama, cihazın arka (dışarıya bakan) kamerasını kullanıyor.
Dikkat: Chromebook gibi yalnızca ön (kullanıcıya dönük) kamerası olan cihazlar bu özelliği desteklemez. Uygulamanız, kameranın yönüne bakılmaksızın herhangi bir kamerayı kullanabiliyorsa
android.hardware.camera.any
değerini kullanın.Not:
CAMERA
iznine sahip olmak, arka kameranın zorunlu bir özellik olduğunu gösterir. Uygulama manifest dosyanızCAMERA
iznini içeriyorsa Google Play'de doğru filtrelemenin yapılmasına yardımcı olmak için uygulamanızıncamera
özelliğini kullandığını açıkça belirtin ve bu özelliğin gerekli olup olmadığını belirtin. Örneğin:
<uses-feature android:name="android.hardware.camera" android:required="false" />
-
android.hardware.camera.front
-
Uygulama, cihazın ön (kullanıcıya bakan) kamerasını kullanıyor.
CAMERA
izni, uygulamanızınandroid.hardware.camera
iznini de kullandığı anlamına gelir.android.hardware.camera
,android:required="false"
ile bildirilmediği sürece arka kamera zorunlu bir özelliktir.Dikkat: Uygulamanız
android.hardware.camera.front
kullanıyorsa ancakandroid.required="false"
ileandroid.hardware.camera
'ı açıkça belirtmiyorsa arka kamerası olmayan cihazlar (Chromebook'lar gibi) Google Play tarafından filtrelenir. Uygulamanız yalnızca ön kamerası olan cihazları destekliyorsa gereksiz filtrelemeyi önlemek içinandroid.hardware.camera
ileandroid.required="false"
değerini belirtin. -
android.hardware.camera.external
-
Uygulama, kullanıcının cihaza bağladığı harici bir kamerayla iletişim kurar. Bu özellik, uygulamanızın harici kamera kullanabileceğini garanti etmez.
CAMERA
izni, uygulamanızınandroid.hardware.camera
iznini de kullandığı anlamına gelir.android.hardware.camera
,android:required="false"
ile birlikte beyan edilmediği sürece arka kamera zorunlu bir özelliktir. -
android.hardware.camera.autofocus
-
Uygulama, cihazın kamerası tarafından desteklenen otomatik odaklama özelliğini kullanır.
Not:
CAMERA
izni, otomatik odaklama özelliğinin gerekli olduğunu gösterir. Uygulama manifest'inizCAMERA
iznini içerdiğinde Google Play'de doğru filtrelemenin yapılmasına yardımcı olmak için uygulamanızın otomatik odaklama özelliğini kullandığını açıkça belirtin ve bu özelliğin gerekli olup olmadığını belirtin. Örneğin:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
. -
android.hardware.camera.flash
-
Uygulama, cihazın kamerası tarafından desteklenen flaş özelliğini kullanıyor.
-
android.hardware.camera.capability.manual_post_processing
-
Uygulama, cihazın kamerası tarafından desteklenen
MANUAL_POST_PROCESSING
özelliğini kullanıyor.Bu özellik, uygulamanızın kameranın otomatik beyaz denge işlevini geçersiz kılmasına olanak tanır.
android.colorCorrection.transform
,android.colorCorrection.gains
veTRANSFORM_MATRIX
android.colorCorrection.mode
-
android.hardware.camera.capability.manual_sensor
-
Uygulama, cihazın kamerası tarafından desteklenen
MANUAL_SENSOR
özelliğini kullanıyor.Bu özellik, otomatik pozlama kilitleme (
android.control.aeLock
) desteğini belirtir. Bu sayede kameranın pozlama süresi ve hassasiyeti belirli değerlerde sabit kalır. -
android.hardware.camera.capability.raw
-
Uygulama, cihazın kamerası tarafından desteklenen
RAW
özelliğini kullanıyor.Bu özellik, cihazın DNG (ham) dosyaları kaydedebileceği anlamına gelir. Cihazın kamerası, uygulamanızın ham resimleri doğrudan işleyebilmesi için gerekli DNG ile ilgili meta verileri sağlar.
-
android.hardware.camera.level.full
-
Uygulama, cihazın kameralarından en az biri tarafından sağlanan
FULL
düzeyinde resim yakalama desteğini kullanır.FULL
desteği; seri çekim özellikleri, kare başına kontrol ve manuel son işlem kontrolü içerir. Bkz.INFO_SUPPORTED_HARDWARE_LEVEL_FULL
.
Cihaz kullanıcı arayüzü donanım özellikleri
-
android.hardware.type.automotive
-
Uygulama, kullanıcı arayüzünü bir araçtaki bir dizi ekranda gösterecek şekilde tasarlanmıştır. Kullanıcı, sabit düğmeler, dokunma, döner kontroller ve fare benzeri arayüzleri kullanarak uygulamayla etkileşim kurar. Araç ekranları genellikle aracın orta konsolunda veya gösterge panelinde bulunur.
Not: Bu özelliğin kullanımı ve arabalar için uygulama oluşturmayla ilgili daha fazla bilgi için Arabalara dağıtma başlıklı makaleyi inceleyin.
-
android.hardware.type.television
-
(Desteği sonlandırıldı; bunun yerine
android.software.leanback
kullanın.)Uygulama, kullanıcı arayüzünü televizyonda gösterecek şekilde tasarlanmıştır. Bu özellik, "televizyon"u tipik bir oturma odası televizyon deneyimi olarak tanımlar: Uygulama büyük ekranda gösterilir, kullanıcı uzakta oturur ve girişin baskın biçimi fare, işaretçi veya dokunmatik cihaz yerine D-pad gibi bir şeydir.
-
android.hardware.type.watch
- Uygulama, kullanıcı arayüzünü kol saatinde gösterecek şekilde tasarlanmıştır. Kol saati, vücuda (ör. bileğe) takılır. Kullanıcı, cihazla etkileşime geçerken cihaza çok yakındır.
-
android.hardware.type.pc
-
Uygulama, kullanıcı arayüzünü Chromebook'larda gösterecek şekilde tasarlanmıştır. Chromebook'lar fare ve dokunmatik alan donanımı kullandığından bu özellik, fare ve dokunmatik alan için giriş emülasyonunu devre dışı bırakır. Fare girişi konusuna bakın.
Not: Bu öğe için
required="false"
değerini ayarlayın. Aksi takdirde Google Play Store, uygulamanızı Chromebook'lar dışındaki cihazlarda kullanılamaz hale getirir.
Parmak izi donanımı özellikleri
-
android.hardware.fingerprint
- Uygulama, cihazın biyometrik donanımını kullanarak parmak izlerini okur.
Oyun kumandası donanım özellikleri
-
android.hardware.gamepad
- Uygulama, cihazdan veya bağlı bir oyun kumandasından oyun kumandası girişini kaydeder.
Kızılötesi donanım özellikleri
-
android.hardware.consumerir
- Uygulama, genellikle diğer tüketici kızılötesi cihazlarla iletişim kurmak için cihazın kızılötesi (IR) özelliklerini kullanır.
Konum donanım özellikleri
-
android.hardware.location
- Uygulama, konum belirlemek için cihazdaki GPS konumu, ağ konumu veya hücre konumu gibi bir veya daha fazla özelliği kullanır.
-
android.hardware.location.gps
-
Uygulama, cihazdaki bir Küresel Konumlandırma Sistemi (GPS) alıcısından elde edilen tam konum koordinatlarını kullanır.
Bir uygulama bu özelliği kullandığında, bu üst özellik
android:required="false"
özelliğiyle tanımlanmadığı süreceandroid.hardware.location
özelliğini de kullandığı ima edilir. -
android.hardware.location.network
-
Uygulama, cihazda desteklenen ağ tabanlı bir coğrafi konumlandırma sisteminden elde edilen kaba konum koordinatlarını kullanır.
Bir uygulama bu özelliği kullandığında, bu üst özellik
android:required="false"
özelliğiyle tanımlanmadığı süreceandroid.hardware.location
özelliğini de kullandığı ima edilir.
NFC donanım özellikleri
-
android.hardware.nfc
- Uygulama, cihazın Near Field Communication (NFC) radyo özelliklerini kullanır.
-
android.hardware.nfc.hce
-
Uygulama, cihazda barındırılan NFC kart emülasyonunu kullanır.
OpenGL ES donanım özellikleri
-
android.hardware.opengles.aep
- Uygulama, cihaza yüklü OpenGL ES Android Uzantısı Paketi'ni kullanır.
Sensör donanım özellikleri
-
android.hardware.sensor.accelerometer
- Uygulama, cihazın mevcut yönünü algılamak için cihazın ivmeölçerindeki hareket ölçümlerini kullanır. Örneğin, bir uygulama dikey ve yatay yönler arasında ne zaman geçiş yapılacağını belirlemek için ivme ölçer okumalarını kullanabilir.
-
android.hardware.sensor.ambient_temperature
- Uygulama, cihazın ortam sıcaklık sensörünü kullanır. Örneğin, bir hava durumu uygulaması kapalı veya açık hava sıcaklığını bildirebilir.
-
android.hardware.sensor.barometer
- Uygulama, cihazın barometresini kullanıyor. Örneğin, bir hava durumu uygulaması hava basıncını bildirebilir.
-
android.hardware.sensor.compass
- Uygulama, cihazın manyetometresini (pusula) kullanır. Örneğin, bir navigasyon uygulamasında kullanıcının baktığı yön gösterilebilir.
-
android.hardware.sensor.gyroscope
- Uygulama, dönme ve bükme hareketlerini algılamak için cihazın jiroskopunu kullanarak altı eksenli bir oryantasyon sistemi oluşturur. Bu sensörü kullanarak uygulamalar, dikey ve yatay yönler arasında geçiş yapması gerektiğinde daha sorunsuz bir şekilde algılama yapabilir.
-
android.hardware.sensor.hifi_sensors
- Uygulama, cihazın yüksek kaliteli (Hi-Fi) sensörlerini kullanır. Örneğin, bir oyun uygulaması kullanıcının yüksek hassasiyetli hareketlerini algılayabilir.
-
android.hardware.sensor.heartrate
- Uygulama, cihazın nabız monitörünü kullanır. Örneğin, bir fitness uygulaması, kullanıcının nabızındaki zaman içindeki trendleri bildirebilir.
-
android.hardware.sensor.heartrate.ecg
- Uygulama, cihazın elektrokardiyogram (EKG) nabız sensörünü kullanır. Örneğin, bir fitness uygulaması kullanıcının nabzı hakkında daha ayrıntılı bilgi bildirebilir.
-
android.hardware.sensor.light
- Uygulama, cihazın ışık sensörünü kullanıyor. Örneğin, bir uygulama ortam ışığı koşullarına göre iki renk şemasından birini gösterebilir.
-
android.hardware.sensor.proximity
- Uygulama, cihazın yakınlık sensörünü kullanıyor. Örneğin, bir telefon uygulaması, kullanıcının cihazı vücuduna yakın tuttuğunu algıladığında cihazın ekranını kapatabilir.
-
android.hardware.sensor.relative_humidity
- Uygulama, cihazın bağıl nem sensörünü kullanır. Örneğin, bir hava durumu uygulaması, mevcut çiy noktasını hesaplamak ve bildirmek için nemi kullanabilir.
-
android.hardware.sensor.stepcounter
- Uygulama, cihazın adım sayarını kullanır. Örneğin, bir fitness uygulaması, kullanıcının günlük adım sayısı hedefine ulaşması için alması gereken adım sayısını bildirebilir.
-
android.hardware.sensor.stepdetector
- Uygulama, cihazın adım algılayıcısını kullanır. Örneğin, bir fitness uygulaması, kullanıcının yaptığı egzersiz türünü belirlemek için adımlar arasındaki zaman aralığını kullanabilir.
Ekran donanım özellikleri
-
android.hardware.screen.landscape
-
android.hardware.screen.portrait
-
Uygulama, cihazın dikey veya yatay yönde kullanılmasını gerektiriyor. Uygulamanız her iki yönü de destekliyorsa bu özelliklerin hiçbirini belirtmeniz gerekmez.
Örneğin, uygulamanız dikey yönü gerektiriyorsa uygulamanızı yalnızca dikey yönü her zaman veya kullanıcının tercihine göre destekleyen cihazların çalıştırabilmesi için aşağıdaki özelliği beyan edin:
<uses-feature android:name="android.hardware.screen.portrait" />
Varsayılan olarak her iki yönü de gerektirmediği varsayıldığından uygulamanız, bir veya her iki yönü de destekleyen cihazlara yüklenebilir. Ancak etkinliklerinizden herhangi biri
android:screenOrientation
özelliğini kullanarak belirli bir yönde çalışma isteğinde bulunursa bu beyan, uygulamanızın bu yönü gerektirdiğini ima eder.Örneğin,
android:screenOrientation
değerini"landscape"
,"reverseLandscape"
veya"sensorLandscape"
ile belirtirseniz uygulamanız yalnızca yatay yönü destekleyen cihazlarda kullanılabilir.En iyi uygulama olarak, bu yöne ilişkin gereksiniminizi
<uses-feature>
öğesi kullanarak belirtin. Etkinliğiniz içinandroid:screenOrientation
kullanarak bir yön belirtiyorsanız ancak bu yöne gerçekten ihtiyaç duymuyorsanız yönü<uses-feature>
öğesiyle belirterek veandroid:required="false"
ekleyerek koşulu devre dışı bırakabilirsiniz.Geriye dönük uyumluluk için Android 3.1 (API düzeyi 12) veya daha eski sürümleri çalıştıran tüm cihazlar hem yatay hem de dikey yönleri destekler.
Telefon donanım özellikleri
-
android.hardware.telephony
- Uygulama, cihazın telefon özelliklerini (ör. veri iletişim hizmetleri sunan telefon radyosu) kullanır.
-
android.hardware.telephony.cdma
-
Uygulama, Code Division Multiple Access (CDMA) telefon radyo sistemini kullanır.
Bir uygulama bu özelliği kullandığında, bu üst özellik
android:required="false"
ile bildirilmediği süreceandroid.hardware.telephony
özelliğini de kullandığı ima edilir. -
android.hardware.telephony.gsm
-
Uygulama, Global System for Mobile Communications (GSM) telefon radyo sistemini kullanır.
Bir uygulama bu özelliği kullandığında, bu üst özellik
android:required="false"
ile bildirilmediği süreceandroid.hardware.telephony
özelliğini de kullandığı ima edilir.
Dokunmatik ekran donanım özellikleri
-
android.hardware.faketouch
-
Uygulama, dokunma ve sürükleme gibi temel dokunma etkileşim etkinliklerini kullanır.
Gerekli olarak tanımlandığında bu özellik, uygulamanın yalnızca emülasyonlu "sahte dokunmatik" dokunmatik ekrana veya gerçek dokunmatik ekrana sahip bir cihazla uyumlu olduğunu gösterir.
Sahte dokunmatik arayüz sunan cihazlar, dokunmatik ekranın özelliklerinin bir alt kümesini taklit eden bir kullanıcı giriş sistemi sağlar. Örneğin, fare veya uzaktan kumanda ekrandaki imleci hareket ettirebilir.
Uygulamanız temel bir işaretle ve tıkla etkileşimi gerektiriyorsa ve yalnızca D-pad kontrol cihazıyla çalışmıyorsa bu özelliği beyan edin. Bu, minimum düzeyde dokunma etkileşimi olduğundan daha karmaşık dokunmatik arayüzler sunan cihazlarda bu özelliği açıklayan bir uygulama da kullanabilirsiniz.
Uygulamalar varsayılan olarak
android.hardware.faketouch
özelliğini gerektirir. Uygulamanızın yalnızca dokunmatik ekrana sahip cihazlarla sınırlı olmasını istiyorsanız dokunmatik ekranın gerekli olduğunu aşağıdaki gibi açıkça belirtmeniz gerekir:<uses-feature android:name="android.hardware.touchscreen" android:required="true" />
Aşağıdaki örnekte gösterildiği gibi,
android.hardware.touchscreen
gerektirmeyen tüm uygulamalar daandroid.hardware.faketouch
yüklü cihazlarda çalışır.<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
-
android.hardware.faketouch.multitouch.distinct
-
Uygulama, sahte bir dokunmatik arayüzde iki veya daha fazla farklı "parmak"ı izler. Bu,
android.hardware.faketouch
özelliğinin üst kümesidir. Zorunlu olarak tanımlandığında bu özellik, uygulamanın yalnızca iki veya daha fazla parmağın ayrı ayrı izlenmesini taklit eden veya gerçek bir dokunmatik ekrana sahip olan cihazlarla uyumlu olduğunu gösterir.android.hardware.touchscreen.multitouch.distinct
tarafından tanımlanan farklı çoklu dokunmanın aksine, sahte dokunmatik arayüzle farklı çoklu dokunmayı destekleyen giriş cihazları, giriş ekrandaki imleç hareketine dönüştürüldüğü için iki parmakla yapılan tüm hareketleri desteklemez. Yani bu tür bir cihazda tek parmakla yapılan hareketler bir imleci hareket ettirir, iki parmakla kaydırmalar tek parmakla dokunma etkinliklerinin gerçekleşmesine neden olur ve diğer iki parmakla yapılan hareketler, ilgili iki parmakla dokunma etkinliklerini tetikler.İmleci hareket ettirmek için iki parmak dokunmatik izleme paneli sunan cihazlar bu özelliği destekleyebilir.
-
android.hardware.faketouch.multitouch.jazzhand
-
Uygulama, sahte bir dokunma arayüzünde beş veya daha fazla farklı "parmak"ı izler. Bu,
android.hardware.faketouch
özelliğinin üst kümesidir. Zorunlu olarak tanımlandığında bu özellik, uygulamanın yalnızca beş veya daha fazla parmağın ayrı ayrı izlenmesini taklit eden veya gerçek bir dokunmatik ekrana sahip olan cihazlarla uyumlu olduğunu gösterir.android.hardware.touchscreen.multitouch.jazzhand
tarafından tanımlanan farklı çoklu dokunma özelliğinin aksine, sahte dokunma arayüzüyle jazzhand çoklu dokunmayı destekleyen giriş cihazları, giriş ekrandaki imleç hareketine dönüştürüldüğü için beş parmakla yapılan tüm hareketleri desteklemez. Yani bu tür bir cihazda tek parmakla yapılan hareketler bir imleci hareket ettirir, birden fazla parmakla yapılan hareketler tek parmakla dokunma etkinliklerinin gerçekleşmesine neden olur ve diğer birden fazla parmakla yapılan hareketler, ilgili birden fazla parmakla dokunma etkinliklerini tetikler.İmleci hareket ettirmek için beş parmak dokunmatik izleme paneli sunan cihazlar bu özelliği destekleyebilir.
-
android.hardware.touchscreen
-
Uygulama, temel dokunma etkinliklerinden daha etkileşimli hareketler (ör. kaydırma) için cihazın dokunmatik ekran özelliklerini kullanır. Bu,
android.hardware.faketouch
özelliğinin üst kümesidir.Varsayılan olarak tüm uygulamalar bu özelliği gerektirir ve bu nedenle yalnızca emülasyonlu "sahte dokunma" arayüzü sunan cihazlarda kullanılamaz.
android.hardware.touchscreen
ileandroid:required="false"
kullanarak dokunmatik ekranın gerekli olmadığını açıkça beyan ederek uygulamanızı sahte dokunmatik arayüz sağlayan cihazlarda veya hatta yalnızca D-pad kontrolörü sağlayan cihazlarda kullanıma sunabilirsiniz. Uygulamanız gerçek bir dokunmatik ekran arayüzü kullanıyorsa ancak bu arayüzü gerektirmiyorsa bu beyanı ekleyin.android.hardware.touchscreen
gerektirmeyen tüm uygulamalarandroid.hardware.faketouch
yüklü cihazlarda da çalışır.Uygulamanız gerçekten bir dokunmatik arayüz gerektiriyorsa (ör. fırlatma gibi daha gelişmiş dokunma hareketleri gerçekleştirmek için) varsayılan olarak gerekli olduklarından herhangi bir dokunmatik arayüz özelliğini belirtmeniz gerekmez. Ancak uygulamanızın kullandığı tüm özellikleri açıkça beyan etmeniz önerilir.
Birden fazla parmakla yapılan hareketler gibi daha karmaşık dokunma etkileşimlerine ihtiyacınız varsa uygulamanızın gelişmiş dokunmatik ekran özelliklerini kullandığını beyan edin.
-
android.hardware.touchscreen.multitouch
-
Uygulama, cihazın temel iki noktalı çoklu dokunma özelliklerini (ör. sıkıştırma hareketleri) kullanır ancak dokunmaları bağımsız olarak izlemesi gerekmez. Bu,
android.hardware.touchscreen
özelliğinin üst kümesidir.Bir uygulama bu özelliği kullandığında, bu üst özellik
android:required="false"
ile bildirilmediği süreceandroid.hardware.touchscreen
özelliğini de kullandığı ima edilir. -
android.hardware.touchscreen.multitouch.distinct
-
Uygulama, iki veya daha fazla noktayı bağımsız olarak izlemek için cihazın gelişmiş çoklu dokunma özelliklerini kullanır. Bu özellik,
android.hardware.touchscreen.multitouch
özelliğinin üst kümesidir.Bir uygulama bu özelliği kullandığında, üst özellik
android:required="false"
ile bildirilmediği süreceandroid.hardware.touchscreen.multitouch
özelliğini de kullandığı ima edilir. -
android.hardware.touchscreen.multitouch.jazzhand
-
Uygulama, beş veya daha fazla noktayı bağımsız olarak izlemek için cihazın gelişmiş çoklu dokunma özelliklerini kullanır. Bu özellik,
android.hardware.touchscreen.multitouch
özelliğinin üst kümesidir.Bir uygulama bu özelliği kullandığında, üst özellik
android:required="false"
ile bildirilmediği süreceandroid.hardware.touchscreen.multitouch
özelliğini de kullandığı ima edilir.
USB donanım özellikleri
-
android.hardware.usb.accessory
- Uygulama, USB cihaz gibi davranır ve USB ana makinelerine bağlanır.
-
android.hardware.usb.host
- Uygulama, cihaza bağlı USB aksesuarlarını kullanır. Cihaz, USB ana makinesi olarak kullanılır.
Vulkan donanım özellikleri
-
android.hardware.vulkan.compute
-
Uygulama, Vulkan hesaplama özelliklerini kullanıyor. Bu özellik, uygulamanın donanım hızlandırmalı Vulkan uygulamasını gerektirdiğini gösterir. Özellik sürümü, uygulamanın Vulkan 1.0 şartlarından Örneğin, uygulamanız Vulkan 0 düzeyinde bilgi işlem desteği gerektiriyorsa aşağıdaki özelliği belirtin:
Özellik sürümü hakkında daha fazla bilgi için<uses-feature android:name="android.hardware.vulkan.compute" android:version="0" android:required="true" />
FEATURE_VULKAN_HARDWARE_COMPUTE
bölümüne bakın. -
android.hardware.vulkan.level
-
Uygulama, Vulkan düzeyindeki özellikleri kullanıyor. Bu özellik, uygulamanın donanım hızlandırmalı Vulkan uygulamasını gerektirdiğini gösterir. Özellik sürümü, uygulamanın hangi düzeyde isteğe bağlı donanım özelliklerine ihtiyaç duyduğunu belirtir. Örneğin, uygulamanız Vulkan donanım düzeyi 0 desteği gerektiriyorsa aşağıdaki özelliği beyan edin:
Öneri sürümü hakkında daha fazla bilgi için<uses-feature android:name="android.hardware.vulkan.level" android:version="0" android:required="true" />
FEATURE_VULKAN_HARDWARE_LEVEL
bölümüne bakın. -
android.hardware.vulkan.version
-
Uygulama Vulkan kullanıyor. Bu özellik, uygulamanın donanım hızlandırmalı Vulkan uygulamasını gerektirdiğini gösterir. Özellik sürümü, uygulamanın ihtiyaç duyduğu Vulkan API desteğinin minimum sürümünü belirtir. Örneğin, uygulamanız için Vulkan 1.0 desteği gerekiyorsa aşağıdaki özelliği beyan edin:
Özellik sürümü hakkında daha fazla bilgi için<uses-feature android:name="android.hardware.vulkan.version" android:version="0x400003" android:required="true" />
FEATURE_VULKAN_HARDWARE_VERSION
bölümüne bakın.
Kablosuz ağ donanım özellikleri
-
android.hardware.wifi
- Uygulama, cihazdaki 802.11 ağ (kablosuz) özelliklerini kullanır.
-
android.hardware.wifi.direct
- Uygulama, cihazdaki kablosuz doğrudan bağlantı ağ özelliklerini kullanır.
Yazılım özellikleri
Bu bölümde, en güncel platform sürümünün desteklediği yazılım özellikleri sunulmaktadır. Uygulamanızın bir yazılım özelliğini kullandığını veya gerektirdiğini belirtmek için android:name
özelliğinde "android.software"
ile başlayan ilgili değeri belirtin.
Her yazılım özelliğini tanımladığınızda ayrı bir <uses-feature>
öğesi kullanın.
İletişim yazılımı özellikleri
-
android.software.sip
- Uygulama, Oturum Başlatma Protokolü (SIP) hizmetlerini kullanır. Uygulama, SIP'yi kullanarak video konferans ve anlık mesajlaşma gibi internet telefon görüşmelerini destekleyebilir.
-
android.software.sip.voip
-
Uygulama, SIP tabanlı İnternet Üzerinden Ses İletişim Protokolü (VoIP) hizmetleri kullanır. Uygulama, VoIP'yi kullanarak iki yönlü video konferans gibi gerçek zamanlı internet telefon görüşmelerini destekleyebilir.
Bir uygulama bu özelliği kullandığında, bu üst özellik
android:required="false"
ile bildirilmediği süreceandroid.software.sip
özelliğini de kullandığı ima edilir. -
android.software.webview
- Uygulama, internetten içerik gösterir.
Özel giriş yazılımı özellikleri
-
android.software.input_methods
-
Uygulama, geliştiricinin
InputMethodService
içinde tanımladığı yeni bir giriş yöntemi kullanıyor.
Cihaz yönetimi yazılımı özellikleri
-
android.software.backup
- Uygulama, yedekleme ve geri yükleme işlemini yürütecek mantık içeriyor.
-
android.software.device_admin
- Uygulama, cihaz politikasını zorunlu kılmak için cihaz yöneticilerini kullanır.
-
android.software.managed_users
- Uygulama, ikincil kullanıcıları ve yönetilen profilleri destekler.
-
android.software.securely_removes_users
- Uygulama, kullanıcıları ve ilişkili verilerini kalıcı olarak kaldırabilir.
-
android.software.verified_boot
- Uygulama, cihazın doğrulanmış önyükleme özelliğinden gelen sonuçları işlemek için mantık içerir. Bu mantık, cihazın yapılandırmasının yeniden başlatma işlemi sırasında değişip değişmediğini algılar.
Medya yazılımı özellikleri
-
android.software.midi
- Uygulama, Müzik Enstrümanı Dijital Arayüzü (MIDI) protokolünü kullanarak müzik enstrümanlarına bağlanır veya ses çıkarır.
-
android.software.print
- Uygulama, cihazda gösterilen dokümanları yazdırma komutları içerir.
-
android.software.leanback
- Uygulama, Android TV cihazlarında çalışacak şekilde tasarlanmıştır.
-
android.software.live_tv
- Uygulama, canlı televizyon programları yayınlar.
Ekran arayüzü yazılım özellikleri
-
android.software.app_widgets
- Uygulama, uygulama widget'ları kullanır veya sağlar ve yalnızca kullanıcıların uygulama widget'ları yerleştirebileceği bir ana ekran veya benzer bir konum içeren cihazlar için tasarlanmıştır.
-
android.software.home_screen
- Uygulama, cihazın ana ekranının yerini alır.
-
android.software.live_wallpaper
- Uygulama, animasyon içeren duvar kağıtları kullanır veya sağlar.
Özellik şartlarını ima eden izinler
Bazı donanım ve yazılım özelliği sabitleri, ilgili API'den sonra uygulamalara sunulur. Bu nedenle, bazı uygulamalar <uses-feature>
sistemini kullanarak API'yi ihtiyaç duyduğunu beyan etmeden önce API'yi kullanabilir.
Google Play, bu uygulamaların yanlışlıkla kullanıma sunulmasını önlemek için belirli donanımla ilgili izinlerin, temel donanım özelliklerinin varsayılan olarak gerekli olduğunu gösterdiğini varsayar. Örneğin, Bluetooth kullanan uygulamalar <uses-permission>
öğesinde BLUETOOTH
iznini istemelidir.
Google Play, eski uygulamalarda izin beyanının, temel android.hardware.bluetooth
özelliğinin uygulama tarafından gerekli olduğu anlamına geldiğini varsayar ve filtrelemeyi bu özelliğe göre ayarlar. Tablo 2'de, <uses-feature>
öğelerinde belirtilenlere eşdeğer özellik koşullarını ima eden izinler listelenmektedir.
Beyan edilen tüm android:required
özellikleri dahil olmak üzere <uses-feature>
beyanları, tablo 2'deki izinlerin ima ettiği özelliklere göre her zaman önceliklidir. Bu izinlerden herhangi biri için, required
özelliği false
olarak ayarlanmış bir <uses-feature>
öğesinde özelliği açıkça bildirerek ima edilen özelliğe göre filtrelemeyi devre dışı bırakabilirsiniz.
Örneğin, CAMERA
iznine göre filtrelemeyi devre dışı bırakmak için aşağıdaki <uses-feature>
bildirimlerini manifest dosyasına ekleyin:
<uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
Dikkat: Uygulamanız Android 5.0 (API düzeyi 21) veya sonraki sürümleri hedefliyorsa ve sırasıyla ağdan veya GPS'den konum güncellemeleri almak için ACCESS_COARSE_LOCATION
ya da ACCESS_FINE_LOCATION
iznini kullanıyorsa uygulamanızın android.hardware.location.network
veya android.hardware.location.gps
donanım özelliklerini kullandığını da açıkça belirtmeniz gerekir.
Tablo 2. Cihaz donanımının kullanılmasını gerektiren cihaz izinleri.
Kategori | İzin | Örtülü özellik koşulu |
---|---|---|
Bluetooth | BLUETOOTH |
android.hardware.bluetooth
Ayrıntılar için Bluetooth özelliği için özel işlem bölümüne bakın. |
BLUETOOTH_ADMIN |
android.hardware.bluetooth |
|
Kamera | CAMERA |
android.hardware.camera android.hardware.camera.autofocus |
Konum | ACCESS_MOCK_LOCATION |
android.hardware.location |
ACCESS_LOCATION_EXTRA_COMMANDS |
android.hardware.location |
|
INSTALL_LOCATION_PROVIDER |
android.hardware.location |
|
ACCESS_COARSE_LOCATION |
|
|
ACCESS_FINE_LOCATION |
|
|
Mikrofon | RECORD_AUDIO |
android.hardware.microphone |
Telefon Hizmeti | CALL_PHONE |
android.hardware.telephony |
CALL_PRIVILEGED |
android.hardware.telephony |
|
MODIFY_PHONE_STATE |
android.hardware.telephony |
|
PROCESS_OUTGOING_CALLS |
android.hardware.telephony |
|
READ_SMS |
android.hardware.telephony |
|
RECEIVE_SMS |
android.hardware.telephony |
|
RECEIVE_MMS |
android.hardware.telephony |
|
RECEIVE_WAP_PUSH |
android.hardware.telephony |
|
SEND_SMS |
android.hardware.telephony |
|
WRITE_APN_SETTINGS |
android.hardware.telephony |
|
WRITE_SMS |
android.hardware.telephony |
|
Kablosuz bağlantı | ACCESS_WIFI_STATE |
android.hardware.wifi |
CHANGE_WIFI_STATE |
android.hardware.wifi |
|
CHANGE_WIFI_MULTICAST_STATE |
android.hardware.wifi |