<özelliği-kullanır>

Google Play, uygulamanızı donanım ve yazılım özelliği gereksinimlerini karşılamayan cihazlardan filtrelemek için uygulama manifestinizde beyan edilen <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 uygulamanın özellik gereksinimlerini karşılayan cihazlara sunmasını sağlarsınız.

Google Play'in özellikleri filtrelemeye temel olarak nasıl kullandığı hakkında önemli bilgi için Google Play ve özelliğe dayalı filtreleme bölümüne bakın.

söz dizimi:
<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />
içerdiği:
<manifest>
description:

Uygulama tarafından kullanılan tek bir donanım veya yazılım özelliği tanımlar.

<uses-feature> beyanının amacı, uygulamanızın bağlı olduğu donanım ve yazılım özellikleri grubu hakkında harici bir tüzel kişiyi bilgilendirmektir. Öğe, uygulamanızın bildirilen özellik olmadan çalışıp çalışmayacağını veya özelliğe sahip olmayı tercih edip edemeyeceğini ancak bu özellik olmadan çalışabilecek olup olmadığını belirtmenizi sağlayan bir required özelliği sunar.

Özellik desteği Android cihazlara göre değişebildiğinden, bir uygulamanın kullandığı cihaza göre değişen özellikleri açıklaması için <uses-feature> öğesi önemli bir rol oynar.

Uygulamanızın beyan ettiği kullanılabilir özellikler grubu, Android PackageManager tarafından sunulan özellik sabitlerine karşılık gelir. Özellik sabitleri, bu belgedeki Özellik referansı bölümünde listelenir.

Her özelliği ayrı bir <uses-feature> öğesinde belirtmeniz gerekir. Yani, uygulamanız birden fazla özellik gerektiriyorsa birden çok <uses-feature> öğesi tanımlar. Örneğin, cihazda hem Bluetooth hem de kamera özelliklerini gerektiren bir uygulama şu iki öğeyi beyan eder:

<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> öğeleri beyan edin.

Bildirilen <uses-feature> öğeleri yalnızca bilgi amaçlıdır. Yani Android sistemi, bir uygulamayı yüklemeden önce cihazdaki eşleşme özellik desteğini kontrol etmez.

Bununla birlikte, Google Play gibi diğer hizmetler ve uygulamalar, uygulamanızı işleme veya uygulamanızla etkileşimde bulunma kapsamında uygulamanızın <uses-feature> bildirimlerini kontrol edebilir. Bu nedenle, uygulamanızın kullandığı tüm özellikleri bildirmeniz çok önemlidir.

Bazı özelliklerde, kullanılan Open GL sürümü (glEsVersion ile belirtilir) gibi özelliğin sürümünü tanımlamanıza olanak sağlayan belirli bir özellik olabilir. Bir cihazda var olan veya olmayan diğer özellikler (ör. kamera) name özelliği kullanılarak tanımlanır.

<uses-feature> öğesi yalnızca API Düzeyi 4 veya üstünü çalıştıran cihazlar için etkinleştirilse de minSdkVersion 3 veya daha düşük bir değer olsa bile bu öğeleri tüm uygulamalar için dahil edin. Platformun eski sürümlerini çalıştıran cihazlar bu öğeyi yoksayar.

Not: Bir özelliği beyan ederken uygun şekilde izin istemeniz gerektiğini de unutmayın. Örneğin, uygulamanızın kamera API'sine erişebilmesi için önce CAMERA iznini istemeniz gerekir. İzni istemek, uygulamanıza uygun donanım ve yazılıma erişim izni verir. Uygulamanız tarafından kullanılan özellikleri bildirmeniz, uygun cihaz uyumluluğunu sağlamanıza yardımcı olur.

özellikler:
android:name
Uygulama tarafından açıklayıcı dize olarak kullanılan tek bir donanım veya yazılım özelliğini belirtir. 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 politikasında belirtilen özelliği gerektirip gerektirmediğini gösteren Boole değeri.
  • Bir özellik için android:required="true" beyan edilmesi, belirtilen özellik cihazda olmadığında uygulamanın çalışamadığı veya çalışacak şekilde tasarlanmadığını belirtir.
  • Bir özellik için android:required="false" beyan edilmesi, uygulamanın cihazda varsa özelliği kullandığını ancak gerekirse belirtilen özellik olmadan çalışacak şekilde tasarlandığını belirtir.

android:required için varsayılan değer "true" değeridir.

android:glEsVersion
Uygulama için gereken OpenGL ES sürümü. Yüksek olan 16 bit büyük sayıyı, düşük olan 16 bit ise küçük sayıyı temsil eder. Örneğin, OpenGL ES sürüm 2.0'ı belirtmek için değeri "0x00020000", OpenGL ES 3.2'yi belirtmek için ise "0x00030002" olarak ayarlarsınız.

Bir uygulama, manifest dosyasında en fazla bir android:glEsVersion özelliği belirtir. Birden fazla değer belirtiyorsa sayısal olarak en yüksek değere sahip android:glEsVersion kullanılır ve diğer değerler yok sayılır.

Uygulama bir android:glEsVersion özelliği belirtmezse uygulamanın yalnızca tüm Android destekli cihazlar tarafından desteklenen OpenGL ES 1.0'ı gerektirdiği varsayılır.

Uygulama, bir platformun belirli bir OpenGL ES sürümünü desteklemesi durumunda sayısal olarak daha düşük olan 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 bu uygulamanın OpenGL ES 2.0 gerektirdiğini belirtin.

Birkaç OpenGL ES sürümünden herhangi biriyle çalışabilen bir uygulama için yalnızca gereken OpenGL ES'nin sayısal olarak en düşük sürümünü belirtin. Çalışma zamanında daha yüksek bir OpenGL ES seviyesinin kullanılabilir olup olmadığını kontrol edebilir.

Çalışma zamanında desteklenen OpenGL ES sürümünün nasıl kontrol edileceği de dahil olmak üzere OpenGL ES'yi kullanma hakkında daha fazla bilgi için OpenGL ES API kılavuzuna bakın.

tanıtıldığı yer:
API Düzeyi 4
ayrıca bakın:

Google Play ve özellik tabanlı filtreleme

Google Play, kullanıcıların görebildiği uygulamaları filtreler. Böylece kullanıcılar yalnızca cihazlarıyla uyumlu olan uygulamaları görüp indirebilir. 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ındaki <uses-feature> öğelerinde belirtildiği şekilde, uygulamanın gerektirdiği özellikler.
  • Salt okunur sistem özellikleri kullanılarak bildirildiği şekliyle cihazda, donanım veya yazılımda bulunan özellikler.

Özellikleri doğru şekilde karşılaştırmak için Android Paket Yöneticisi, hem uygulamaların hem de cihazların özellik gereksinimlerini ve desteği belirtmek için kullandığı ortak bir özellik sabit değerleri sağlar. Kullanılabilir özellik sabitleri, bu belgedeki Özellik referansı bölümünde ve PackageManager için sınıf dokümanlarında listelenmiştir.

Kullanıcı Google Play'i başlattığında, uygulama getSystemAvailableFeatures() çağrısı yaparak paket yöneticisinden cihazda kullanılabilen özelliklerin listesini sorgular. Daha sonra Store uygulaması, kullanıcı için oturumu 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 bazı durumlarda <uses-sdk> ve <uses-permission> öğeleri gibi diğer öğelerle birlikte değerlendirir. Uygulamanın gerekli özellikleri belirledikten sonra, uygulama bu listeyi uygulama APK'sı ve uygulama sürümüyle ilişkili meta veriler olarak dahili olarak depolar.

Bir kullanıcı Google Play uygulamasını kullanarak uygulamalar için arama yaptığında veya uygulamalara göz attığında hizmet, her bir uygulamanın ihtiyaç duyduğu özellikleri kullanıcının cihazında bulunan ö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 muhtemelen indirmesine olanak sağlar.

Gerekli özelliklerden herhangi biri cihaz tarafından desteklenmiyorsa Google Play, uygulamayı filtreleyerek kullanıcı tarafından görülmeyecek veya indirilemeyeceği şekilde ayarlar.

<uses-feature> öğelerinde beyan ettiğiniz özellikler, Google Play'in uygulamanızı filtreleme şeklini doğrudan etkilediğinden, Google Play'in uygulamanın manifest dosyasını nasıl değerlendirdiğini ve gerekli özellikleri nasıl belirlediğini anlamanız önemlidir. Aşağıdaki bölümlerde daha fazla bilgi sunulmaktadır.

Açıkça belirtilen özelliklere göre filtreleme

Açıkça bildirilen özellik, uygulamanızın bir <uses-feature> öğesinde tanımladığı bir özelliktir. API düzeyi 5 veya üstüne derleme yapıyorsanız özellik beyanı bir android:required=["true" | "false"] özelliği içerebilir.

Bu, uygulamanın söz konusu özelliği gerektirip gerektirmediğini ve bu özellik olmadan düzgün çalışıp çalışmayacağını ("true") ya da varsa özelliği kullanıp kullanamayacağı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 özelliğin zorunlu olduğu açıkça beyan edilmişse Google Play, bu özelliği uygulama için gerekli özellikler listesine ekler. Ardından, uygulamayı bu özelliği sunmayan cihazlardaki kullanıcılardan filtreler.
    <uses-feature android:name="android.hardware.camera.any" android:required="true" />
    
  • Bir özellik, aşağıdaki örnekte gösterildiği gibi açıkça gerekli olmadığı açıkça beyan edilmişse Google Play özelliği gerekli özellikler listesine eklemez. Bu nedenle, uygulama filtrelenirken açıkça belirtilen zorunlu olmayan bir özellik asla dikkate alınmaz. Cihaz beyan edilen özelliği sağlamasa bile Google Play, uygulamayı cihazla uyumlu olarak kabul eder ve başka filtreleme kuralları geçerli olmadığı sürece kullanıcıya gösterir.
    <uses-feature android:name="android.hardware.camera" android:required="false" />
    
  • Özellik, açıkça beyan edilmiş ancak android:required özelliği olmadan beyan edilmişse Google Play özelliğin gerekli olduğunu varsayarak filtrelemeyi ayarlar.

Genel olarak, uygulamanız Android 1.6 ve önceki sürümleri üzerinde çalışacak şekilde tasarlandıysa android:required özelliği API'de bulunmaz ve Google Play, tüm <uses-feature> bildirimlerinin gerekli olduğunu varsayar.

Not: Bir özelliği açık bir şekilde beyan ederek ve android:required="false" özelliği ekleyerek belirtilen özellik için Google Play'deki tüm filtrelemeyi etkili şekilde devre dışı bırakabilirsiniz.

Örtülü özelliklere göre filtrele

Dolaylı özellik, bir uygulamanın düzgün çalışması için gereken ancak manifest dosyasındaki bir <uses-feature> öğesinde bildirilmeyen özelliktir. Daha net ifade etmek gerekirse her uygulamanın kullandığı veya gerektirdiği tüm özellikleri her zaman beyan etmesi en iyi uygulamadır. Bir uygulama tarafından kullanılan özellik için beyan sağlanmamış olması hata olarak kabul edilebilir.

Bununla birlikte Google Play, kullanıcılar ve geliştiriciler için koruma sağlamak amacıyla her uygulamadaki dolaylı özellikleri arar ve bu özellikler için, açıkça beyan edilen özelliklerde olduğu gibi filtreler oluşturur.

Bir uygulama, bir özelliği gerektirebilir ancak aşağıdaki gibi nedenlerle bu özelliği bildirmeyebilir:

  • Uygulama, Android kitaplığının <uses-feature> öğesi bulunmayan eski bir sürümüne (Android 1.5 veya öncesi) göre derlendi.
  • Geliştirici, yanlış bir şekilde bu özelliğin tüm cihazlarda bulunduğunu ve bir beyanın gereksiz olduğunu varsayar.
  • Geliştirici, özellik beyanını yanlışlıkla atlar.
  • Geliştirici, özelliği açık bir şekilde beyan etmiş olsa da beyan geçerli değildir. Örneğin, <uses-feature> öğesi adındaki bir yazım hatası veya android:name özelliği için tanınmayan bir dize değeri, özellik bildirimini geçersiz kılar.

Google Play bu durumları hesaba katmak için manifest dosyasında belirtilen diğer öğeleri, özellikle de <uses-permission> öğelerini inceleyerek uygulamanın ima edilen özellik gereksinimlerini keşfetmeye çalışır.

Bir uygulama donanımla ilgili izinler isterse Google Play, uygulamanın temel donanım özelliklerini kullandığını varsayar ve bu nedenle, karşılık gelen <uses-feature> beyanı olmasa bile bu özelliklere ihtiyaç duyar. 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 izni isterse Google Play, uygulama android.hardware.camera için <uses-feature> öğesi tanımlamasa bile uygulamanın arka (dünyaya bakan) kamera gerektirdiğini varsayar. Bunun sonucunda, Google Play arka kamerası olmayan cihazları filtreler.

Google Play'in ima edilen belirli bir özelliğe göre filtrelemesini istemiyorsanız özelliği bir <uses-feature> öğesinde açıkça beyan edin ve android:required="false" özelliğini ekleyin. Örneğin, CAMERA izni tarafından belirtilen filtrelemeyi devre dışı bırakmak için aşağıdaki özellikleri beyan edin:

<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ı filtreleme şeklini doğrudan etkileyebilir. Özellik gereksinimleri olduğunu ima eden izinler bölümünde, özellik gereksinimleri ima eden ve dolayısıyla filtrelemeyi tetikleyen izinlerin tamamı listelenir.

Bluetooth özelliği için özel kullanım

Google Play, Bluetooth için filtreleme belirlerken önceki örnekte açıklanandan biraz farklı kurallar uygular.

Bir uygulama, bir <uses-permission> öğesinde Bluetooth izni beyan eder ancak <uses-feature> öğesinde Bluetooth özelliğini açık bir şekilde belirtmezse Google Play, <uses-sdk> öğesinde belirtildiği gibi uygulamanın çalışmak üzere tasarlandığı Android platformunun sürümlerini 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 sonraki bir sürüm olarak beyan etmesi durumunda Bluetooth özelliği için filtreleme sağlar. Ancak uygulama, bir <uses-feature> öğesinde Bluetooth özelliğini açık bir şekilde bildirdiğinde Google Play'in filtreleme için normal kuralları uyguladığını unutmayın.

Tablo 1. Google Play'in, Bluetooth izni isteyen ancak Bluetooth özelliğini bir <uses-feature> öğesinde belirtmeyen bir uygulama için Bluetooth özelliği gereksinimini nasıl belirlediği.

Eğer minSdkVersion ... ve targetSdkVersion ise Sonuç
<=4 veya <uses-sdk> bildirilmemiş <=4 Google Play, android.hardware.bluetooth özelliği için bildirilen desteğe göre uygulamayı diğer cihazlardan filtrelemez.
<=4 >=5 Google Play, uygulamayı android.hardware.bluetooth özelliğini desteklemeyen tüm cihazlardan filtreler (eski sürümler dahil).
>=5 >=5

Aşağıdaki örneklerde, Google Play'in Bluetooth özelliğini nasıl işlediğine bağlı olarak farklı filtreleme efektleri gösterilmektedir.

İlk örnekte, daha eski API düzeylerinde çalışmak üzere tasarlanmış bir uygulama, Bluetooth izni beyan etmektedir ancak Bluetooth özelliğini bir <uses-feature> öğesinde tanımlamaz.
Sonuç: Google Play, hiçbir cihazda uygulamayı filtrelemez.
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" />
    ...
</manifest>
İkinci örnekte, aynı uygulama ayrıca "5" hedef API düzeyini bildirmektedir.
Sonuç: Google Play artık özelliğin gerekli olduğunu varsayarak uygulamayı, platformun eski sürümlerini çalıştıran cihazlar da dahil olmak üzere Bluetooth desteği sağlamayan tüm cihazlardan filtreler.
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>
Aynı uygulamada Bluetooth özelliği artık özel olarak beyan ediliyor.
Sonuç: Önceki örnekle aynı şekilde: 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 örnekte aynı uygulama bir android:required="false" özelliği ekler.
Sonuç: Google Play, tüm cihazlar için Bluetooth özellik desteğine göre filtrelemeyi devre dışı bırakır.
<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 filtrelediğini belirlemek için Android SDK'sında yer alan aapt2 aracını kullanabilirsiniz. Bunun için aapt2 komutunu dump badging komutuyla çalıştırın. Bu işlem, aapt2 ürünü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 kuralları uygulamasına neden olur.

Aracı kullanmak için aşağıdaki adımları uygulayın:

  1. Uygulamanızı imzasız bir APK olarak oluşturun ve dışa aktarın. Android Studio'da geliştirme yapıyorsanız uygulamanızı Gradle ile aşağıdaki gibi oluşturun:
    1. Projeyi açın ve Çalıştır > Yapılandırmaları Düzenle'yi seçin.
    2. Çalıştır/Hata Ayıklama Yapılandırmaları penceresinin sol üst köşesindeki artı işaretini seçin.
    3. Gradle'ı seçin.
    4. Ad alanına "İmzasız APK" yazın.
    5. Gradle projesi bölümünden modülünüzü seçin.
    6. Görevler bölümüne "derle" ifadesini girin.
    7. Yeni yapılandırmayı tamamlamak için OK'i (Tamam) seçin.
    8. Araç çubuğunda İmzalanmamış APK çalıştırma yapılandırmasının seçili olduğundan emin olun ve ardından, Çalıştır > 'İmzalanmamış APK'yı Çalıştır'ı seçin.
    İmzasız APK'nızı <ProjectName>/app/build/outputs/apk/ dizininde bulabilirsiniz.
  2. PATH yolunda değilse aapt2 aracını bulun. SDK Tools r8 veya sonraki bir sürümü kullanıyorsanız aapt2 yönergesini <SDK>/build-tools/<tools version number> dizininde bulabilirsiniz.

    Not: Mevcut en yeni Derleme Araçları bileşeni için sağlanan aapt2 sürümünü kullanmanız gerekir. Derleme Araçları bileşeninin en yeni sürümüne sahip değilseniz Android SDK Yöneticisi'ni kullanarak indirin.

  3. aapt2 komutunu şu söz dizimini kullanarak çalıştırın:
$ aapt2 dump badging <path_to_exported_.apk>

Aşağıda, daha önce gösterilen ikinci Bluetooth örneğindeki komut çıkışı örneği verilmiştir:

$ ./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'

Özellik referansı

Aşağıdaki bölümlerde donanım özellikleri, yazılım özellikleri ve belirli özellik gereksinimleri anlamına gelen 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 bunu gerektirdiğini belirtmek için "android.hardware" ile başlayan karşılık gelen değeri android:name özelliğinde tanımlayın. Bir donanım özelliği bildirdiğinizde ayrı bir <uses-feature> öğesi kullanın.

Ses donanımı özellikleri

android.hardware.audio.low_latency
Uygulama, cihazın düşük gecikmeli ses ardışık düzenini kullanarak ses girişini veya çıkışını işlerken gecikmeyi ve gecikmeleri azaltır.
android.hardware.audio.output
Uygulama, sesi cihazın hoparlörlerini, ses jakını, Bluetooth akış özelliklerini veya benzer bir mekanizmayı kullanarak iletir.
android.hardware.audio.pro
Uygulama, cihazın yüksek kaliteli ses işlevlerini ve performans özelliklerini kullanır.
android.hardware.microphone
Uygulama, cihazın mikrofonunu kullanarak ses kaydeder.

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 ihtiyaç duymadığı 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ünyaya bakan) kamera, otomatik odaklama veya flaş yoktur. Ancak Chromebook'ların ön (kullanıcıya dönük) kameraları vardır ve genellikle harici kameralara bağlanır.

Temel kamera desteği sağlamak ve uygulamanızı mümkün olduğunca fazla cihaza sunmak için uygulama manifestinize 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 cihaza sunmak için, bir özelliğin olması gereken bir özellik olup olmadığını açıkça belirtmek amacıyla her zaman required özelliğini ekleyin.

Özellik listesi
android.hardware.camera.any

Uygulama, cihazdaki kameralardan birini veya cihaza bağlı harici bir kamerayı kullanır. Uygulamanız kameranın arkaya (dünyaya) veya öne (kullanıcıya) dönük olmasını gerektirmiyorsa android.hardware.camera veya android.hardware.camera.front yerine bu özelliği kullanın.

CAMERA izni, uygulamanızın da android.hardware.camera kullandığını ima eder. android.hardware.camera, android:required="false" ile beyan edilmediği sürece arka kamera zorunlu bir özelliktir.

android.hardware.camera

Uygulama, cihazın arka (dünyaya bakan) kamerasını kullanır.

Dikkat: Chromebook gibi yalnızca ön (kullanıcıya yönelik) kamerası olan cihazlar bu özelliği desteklemez. Uygulamanız, kameranın baktığı yön ne olursa olsun herhangi bir kamerayı kullanabiliyorsa android.hardware.camera.any kullanın.

Not: CAMERA izni, arka kameranın gerekli bir özellik olduğu anlamına gelir. Uygulama manifestiniz CAMERA iznini içerdiğinde Google Play'de doğru filtrelemenin yapılması için uygulamanızın camera özelliğini kullandığını açıkça belirtin ve bunun 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 dönük) kamerasını kullanır.

CAMERA izni, uygulamanızın da android.hardware.camera kullandığını ima eder. android.hardware.camera, android:required="false" ile beyan edilmediği sürece arka kamera zorunlu bir özelliktir.

Dikkat: Uygulamanızda android.hardware.camera.front kullanılıyorsa ancak android.hardware.camera ile birlikte android.required="false" açıkça belirtilmiyorsa arka kamerası olmayan cihazlar (ör. Chromebook'lar) Google Play tarafından filtrelenir. Uygulamanız yalnızca ön kamerası olan cihazları destekliyorsa gereksiz filtrelemeyi önlemek için android.hardware.camera özelliğini android.required="false" ile bildirin.

android.hardware.camera.external

Uygulama, kullanıcının cihaza bağladığı harici bir kamerayla iletişim kurar. Bu özellik, uygulamanızın kullanabileceği bir harici kameranın bulunduğunu garanti etmez.

CAMERA izni, uygulamanızın da android.hardware.camera kullandığını ima eder. android.hardware.camera, android:required="false" ile 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ıyor.

Not: CAMERA izni, otomatik odaklamanın gerekli bir özellik olduğu anlamına gelir. Uygulama manifestinizde CAMERA izni bulunduğunda Google Play'de doğru filtreleme yapılmasını sağlamak için uygulamanızda otomatik odaklama özelliğini kullandığını açıkça belirtin ve bunun 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ır.

Bu özellik, uygulamanızın kameranın otomatik beyaz dengesi işlevini geçersiz kılmasına olanak tanır. android.colorCorrection.transform, android.colorCorrection.gains ve android.colorCorrection.mode tutarında TRANSFORM_MATRIX kullanın.

android.hardware.camera.capability.manual_sensor

Uygulama, cihazın kamerası tarafından desteklenen MANUAL_SENSOR özelliğini kullanır.

Bu özellik, kameranın pozlama süresinin ve hassasiyetinin belirli değerlerde sabit kalmasını sağlayan otomatik pozlama kilitlemenin (android.control.aeLock) desteklendiği anlamına gelir.

android.hardware.camera.capability.raw

Uygulama, cihazın kamerası tarafından desteklenen RAW özelliğini kullanır.

Bu özellik, cihazın DNG (ham) dosyalarını kaydedebileceği anlamına gelir. Cihazın kamerası, uygulamanızın ham görüntüleri doğrudan işlemesi için gereken DNG ile ilgili meta verileri sağlar.

android.hardware.camera.level.full
Uygulama, cihazdaki kameralardan en az biri tarafından sağlanan FULL düzeyindeki görüntü yakalama desteğini kullanır. FULL desteği, seri çekim yakalama özellikleri, kare kontrolü başına ve manuel işleme sonrası kontrolü içerir. INFO_SUPPORTED_HARDWARE_LEVEL_FULL sayfasını inceleyin.

Cihaz kullanıcı arayüzü donanım özellikleri

android.hardware.type.automotive

Uygulama, kullanıcı arayüzünü aracın içindeki bir dizi ekranda gösterecek şekilde tasarlanmıştır. Kullanıcı; sert düğmeler, dokunma, çevirmeli kumandalar ve fare benzeri arayüzler kullanarak uygulamayla etkileşimde bulunur. Araç ekranları genellikle aracın orta panelinde veya gösterge grubunda görünür. Bu ekranların boyutu ve çözünürlüğü genellikle sınırlı olur.

Not: Kullanıcı bu tür uygulama kullanıcı arayüzünü kullanırken araç kullandığı için uygulama, sürücünün dikkatini en az seviyede dağıtmalıdır.

android.hardware.type.television

(Kullanımdan kaldırıldı; bunun yerine android.software.leanback kullanın.)

Uygulama, kullanıcı arayüzünü televizyonda gösterecek şekilde tasarlanmıştır. Bu özellik, "televizyonu" tipik bir oturma odasındaki televizyon deneyimi olarak tanımlar: Uygulamanın büyük bir ekranda görüntülenmesi, kullanıcının uzakta oturduğu ve baskın giriş 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ü bir saatte gösterecek şekilde tasarlanmıştır. Saat vücuda (örneğin, bileğe) takılır. Kullanıcı cihazla etkileşimde bulunurken cihaza çok yakın olduğunda.
android.hardware.type.pc

Uygulama, Chromebook'larda kullanıcı arayüzünü gösterecek şekilde tasarlanmıştır. Chromebook'larda fare ve dokunmatik alan donanımı kullanıldığından bu özellik, fare ve dokunmatik alan için giriş emülasyonunu devre dışı bırakır. Fare girişi bölümüne bakın.

Not: Bu öğe için required="false" ayarlayın. Aksi takdirde Google Play Store, uygulamanızı Chromebook 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, cihazın kendisinden veya bağlı bir oyun kumandasından gelen oyun kumandası girişini yakalar.

Kızılötesi donanım özellikleri

android.hardware.consumerir
Uygulama, genellikle diğer tüketici IR cihazlarıyla 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 bir veya daha fazla özelliği (ör. GPS konumu, ağ konumu veya hücre konumu) kullanır.
android.hardware.location.gps

Uygulama, cihazdaki Küresel Konumlandırma Sistemi (GPS) alıcısından alınan tam konum koordinatlarını kullanır.

Bu özellik kullanıldığında uygulamalar, android.hardware.location özelliğini de kullandığını ima eder (bu üst özellik android:required="false" özelliğiyle tanımlanmamışsa).

android.hardware.location.network

Uygulama, cihazda desteklenen ağ tabanlı bir coğrafi konum sisteminden alınan yaklaşık konum koordinatlarını kullanır.

Bu özellik kullanıldığında uygulamalar, android.hardware.location özelliğini de kullandığını ima eder (bu üst özellik android:required="false" özelliğiyle tanımlanmamışsa).

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ıyor.

OpenGL ES donanım özellikleri

android.hardware.opengles.aep
Uygulama, cihazda yüklü olan OpenGL ES Android Extension Pack'i kullanır.

Sensör donanım özellikleri

android.hardware.sensor.accelerometer
Uygulama, cihazın geçerli yönünü algılamak için cihazın ivme ölçerinden gelen 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 ölçümlerini kullanabilir.
android.hardware.sensor.ambient_temperature
Uygulama, cihazın ortam (çevre) sıcaklığı sensörünü kullanır. Örneğin, bir hava durumu uygulaması iç veya dış mekan sıcaklığını bildirebilir.
android.hardware.sensor.barometer
Uygulama, cihazın barometresini kullanır. Örneğin, bir hava durumu uygulaması hava basıncını raporlayabilir.
android.hardware.sensor.compass
Uygulama, cihazın manyetometresini (pusula) kullanır. Örneğin, bir navigasyon uygulaması kullanıcının karşılaştığı mevcut yönü gösterebilir.
android.hardware.sensor.gyroscope
Uygulama, cihazın jiroskopunu kullanarak dönme ve bükülme hareketlerini algılayarak altı eksenli bir yön sistemi oluşturuyor. Uygulamalar bu sensörü kullanarak 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 nabzının zaman içindeki trendlerini raporlayabilir.
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 nabız hızı hakkında daha ayrıntılı bilgi raporlayabilir.
android.hardware.sensor.light
Uygulama, cihazın ışık sensörünü kullanır. Örneğin, bir uygulama ortam aydınlatma koşullarına dayalı olarak iki renk şemasından birini gösterebilir.
android.hardware.sensor.proximity
Uygulama, cihazın yakınlık sensörünü kullanır. Ö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ı hesaplayıp bildirmek için nem oranını kullanabilir.
android.hardware.sensor.stepcounter
Uygulama, cihazın adım sayacını kullanır. Örneğin, bir fitness uygulaması, bir kullanıcının günlük adım sayısı hedefine ulaşmak için atması gereken adım sayısını raporlayabilir.
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ığı egzersizin türünü tahmin etmek 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önü kullanmasını gerektiriyor. Uygulamanız her iki yönü de destekliyorsa iki özelliği de beyan etmeniz gerekmez.

Örneğin, uygulamanız dikey yönü gerektiriyorsa yalnızca dikey yönü destekleyen cihazların (her zaman veya kullanıcının tercihine göre) uygulamanızı ç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ün de gerekli olmadığı düşünülür. Bu nedenle, uygulamanız yönlerden birini veya her ikisini destekleyen cihazlara yüklenebilir. Ancak etkinliklerinizden herhangi biri android:screenOrientation özelliğini kullanarak belirli bir yönde çalışmasını istiyorsa bu beyan, uygulamanızın bu yönü gerektirdiğini belirtir.

Örneğin, android:screenOrientation özelliğini "landscape", "reverseLandscape" veya "sensorLandscape" ile beyan ederseniz uygulamanız yalnızca yatay yönü destekleyen cihazlarda kullanılabilir.

En iyi uygulama olarak, bu yöne ilişkin gereksiniminizi bir <uses-feature> öğesi kullanarak tanımlayın. Etkinliğiniz için android:screenOrientation özelliğini kullanarak yön belirtir ancak aslında bunu zorunlu kılmazsanız yönü <uses-feature> öğesiyle tanımlayıp android:required="false" ekleyerek bu koşulu devre dışı bırakabilirsiniz.

Geriye dönük uyumluluk için Android 3.1 (API düzeyi 12) veya önceki 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şimi hizmetleri içeren telefon radyosu) kullanır.
android.hardware.telephony.cdma

Uygulama, Kod Bölümü Çoklu Erişim (CDMA) telefon radyo sistemini kullanmaktadır.

Bu özellik kullanıldığında uygulamalar, android.hardware.telephony özelliğini de kullandığını ima eder (bu üst özellik android:required="false" ile açıklanmadığı sürece).

android.hardware.telephony.gsm

Uygulama, Global System for Mobile Communication (GSM) telefon radyo sistemini kullanır.

Bu özellik kullanıldığında uygulamalar, android.hardware.telephony özelliğini de kullandığını ima eder (bu üst özellik android:required="false" ile açıklanmadığı sürece).

Dokunmatik ekran donanım özellikleri

android.hardware.faketouch

Uygulama, dokunma ve sürükleme gibi temel dokunma etkileşimi etkinliklerini kullanır.

Gerekli olduğu beyan edildiğinde bu özellik, yalnızca bir cihazda emüle edilmiş "sahte dokunma" dokunmatik bir ekrana veya gerçek bir dokunmatik ekrana sahip olan bir uygulamanın cihazla uyumlu olduğunu belirtir.

Sahte dokunmatik arayüz sunan bir cihaz, dokunmatik ekranın yeteneklerinin bir kısmını emüle eden bir kullanıcı giriş sistemi sağlar. Örneğin, fare veya uzaktan kumanda ekran üzerinde imleç kullanabilir.

Uygulamanız temel işaretle ve tıkla etkileşimi gerektiriyorsa ve yalnızca bir D-pad kumandasıyla çalışmıyorsa bu özelliği beyan edin. Bu, minimum dokunma etkileşimi düzeyi olduğundan, daha karmaşık dokunma arayüzleri sunan cihazlarda bu özelliği belirten bir uygulama da kullanabilirsiniz.

Uygulamalar için varsayılan olarak android.hardware.faketouch özelliği gerekir. Uygulamanızın yalnızca dokunmatik ekranı olan cihazlarla sınırlandırılmasını istiyorsanız dokunmatik ekranın gerekli olduğunu aşağıdaki şekilde açıkça beyan etmeniz gerekir:

<uses-feature android:name="android.hardware.touchscreen"
    android:required="true" />

Aşağıdaki örnekte gösterildiği gibi, açıkça android.hardware.touchscreen gerektirmeyen tüm uygulamalar android.hardware.faketouch yüklü cihazlarda da çalışır.

<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
android.hardware.faketouch.multitouch.distinct

Uygulama, sahte dokunma özellikli bir arayüzde iki veya daha fazla farklı "parmağı" izliyor. Bu, android.hardware.faketouch özelliğinin üst kümesidir. Gerekli olduğu belirtildiğinde bu özellik, yalnızca iki veya daha fazla parmağın ayrı bir şekilde izlenmesini emüle etmesi ya da gerçek bir dokunmatik ekrana sahip olması durumunda uygulamanın bir cihazla uyumlu olduğunu belirtir.

android.hardware.touchscreen.multitouch.distinct tarafından tanımlanan farklı çoklu dokunma özelliğinden farklı olarak, sahte dokunma arayüzüyle ayrı bir çoklu dokunmayı destekleyen giriş cihazları, iki parmakla yapılan tüm hareketleri desteklemez. Bunun nedeni, giriş, ekranda imleç hareketine dönüştürülmesidir. Yani bu tür bir cihazdaki tek parmakla yapılan hareketler imleci hareket ettirir, iki parmakla kaydırmalar tek parmakla dokunma etkinliklerinin gerçekleşmesine neden olur ve diğer iki parmakla yapılan hareketler karşılık gelen iki parmakla dokunma etkinliklerini tetikler.

İmleç hareketi için iki parmakla dokunmatik dokunmatik yüzey sağlayan bir cihaz bu özelliği destekleyebilir.

android.hardware.faketouch.multitouch.jazzhand

Uygulama, sahte dokunma özellikli bir arayüzde beş veya daha fazla farklı "parmak"ı izliyor. Bu, android.hardware.faketouch özelliğinin üst kümesidir. Gerekli olduğu belirtildiğinde bu özellik, uygulamanın bir cihazla uyumlu olduğunu, ancak o cihazın beş veya daha fazla parmağını farklı şekilde izlemesini emüle etmesi ya da gerçek bir dokunmatik ekrana sahip olması durumunda belirtir.

android.hardware.touchscreen.multitouch.jazzhand tarafından tanımlanan farklı çoklu dokunma özelliğinden farklı olarak, sahte dokunmatik arayüzle caz-el çoklu dokunma özelliğini destekleyen giriş cihazları, ekranda imleç hareketine dönüştürüldüğü için beş parmakla yapılan hareketlerin hepsini desteklemez. Yani bu tür bir cihazdaki tek parmakla yapılan hareketler 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 de ilgili birden fazla parmakla dokunma etkinliklerini tetikler.

İmleç hareketi için beş parmakla dokunmatik dokunmatik yüzey sağlayan bir cihaz bu özelliği destekleyebilir.

android.hardware.touchscreen

Uygulama, parmak sallama gibi temel dokunma etkinliklerinden daha etkileşimli hareketler 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üle edilmiş "sahte dokunma" arayüzü sağlayan cihazlarda kullanılamaz. Uygulamanızı, sahte dokunmatik arayüz sağlayan cihazlarda, hatta yalnızca D-pad denetleyicisi sağlayan cihazlarda kullanıma sunabilirsiniz. Bunun için, android:required="false" ile android.hardware.touchscreen kullanırken dokunmatik ekranın gerekmediğini açıkça belirtebilirsiniz. Uygulamanız gerçek bir dokunmatik ekran arayüzü kullanıyorsa ancak bunu gerektirmiyorsa bu beyanı ekleyin. Açıkça android.hardware.touchscreen gerektirmeyen tüm uygulamalar android.hardware.faketouch yüklü cihazlarda da çalışır.

Uygulamanız aslında dokunmatik bir arayüz gerektiriyorsa (ör. hızlıca kaydırma gibi daha gelişmiş dokunma hareketlerini gerçekleştirmek için), varsayılan olarak gerekli oldukları için dokunmatik arayüz özelliklerini bildirmeniz gerekmez. Ancak uygulamanızın kullandığı tüm özellikleri açıkça belirtmeniz en iyisidir.

Birden fazla parmakla yapılan hareketler gibi daha karmaşık dokunma etkileşimlerine ihtiyacınız varsa uygulamanızın gelişmiş dokunmatik ekran özellikleri kullandığını beyan edin.

android.hardware.touchscreen.multitouch

Uygulama, cihazın iki noktalı çoklu dokunma özelliklerini (ör. sıkıştırma hareketleri) kullanır ancak dokunmaları bağımsız olarak izlemeye gerek yoktur. Bu, android.hardware.touchscreen özelliğinin üst kümesidir.

Bu özellik kullanıldığında uygulamalar, android.hardware.touchscreen özelliğini de kullandığını ima eder (bu üst özellik android:required="false" ile açıklanmadığı sürece).

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.

Bu özellik kullanıldığında uygulamalar, android.hardware.touchscreen.multitouch özelliğini de kullandığını ima eder (bu üst özellik android:required="false" ile açıklanmadığı sürece).

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.

Bu özellik kullanıldığında uygulamalar, android.hardware.touchscreen.multitouch özelliğini de kullandığını ima eder (bu üst özellik android:required="false" ile açıklanmadığı sürece).

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 görevi görür.

Vulkan donanım özellikleri

android.hardware.vulkan.compute
Uygulama, Vulkan bilgi işlem özelliklerini kullanır. Bu özellik, uygulamanın donanım hızlandırmalı Vulkan uygulaması gerektirdiğini belirtir. Özellik sürümü, uygulamanın Vulkan 1.0 gereksinimleri dışında hangi düzeyde isteğe bağlı işlem özellikleri gerektirdiğini belirtir. Örneğin, uygulamanız Vulkan bilgi işlem düzeyi 0 desteği gerektiriyorsa aşağıdaki özelliği beyan edin:
<uses-feature
    android:name="android.hardware.vulkan.compute"
    android:version="0"
    android:required="true" />
Özellik sürümü hakkında daha fazla bilgi için FEATURE_VULKAN_HARDWARE_COMPUTE adresine bakın.
android.hardware.vulkan.level
Uygulama, Vulkan düzeyinde özellikleri kullanıyor. Bu özellik, uygulamanın donanım hızlandırmalı Vulkan uygulaması gerektirdiğini belirtir. Özellik sürümü, uygulamanın gerektirdiği isteğe bağlı donanım özelliklerini belirtir. Örneğin, uygulamanız Vulkan donanım düzeyi 0 desteği gerektiriyorsa aşağıdaki özelliği beyan edin:
<uses-feature
    android:name="android.hardware.vulkan.level"
    android:version="0"
    android:required="true" />
Özellik sürümü hakkında daha fazla bilgi için FEATURE_VULKAN_HARDWARE_LEVEL adresine bakın.
android.hardware.vulkan.version
Uygulama Vulkan'ı kullanıyor. Bu özellik, uygulamanın donanım hızlandırmalı Vulkan uygulaması gerektirdiğini belirtir. Özellik sürümü, uygulamanın gerektirdiği minimum Vulkan API desteği sürümünü belirtir. Örneğin, uygulamanız Vulkan 1.0 desteği gerektiriyorsa aşağıdaki özelliği beyan edin:
<uses-feature
    android:name="android.hardware.vulkan.version"
    android:version="0x400003"
    android:required="true" />
Özellik sürümü hakkında daha fazla bilgi için FEATURE_VULKAN_HARDWARE_VERSION adresine bakın.

Kablosuz donanım özellikleri

android.hardware.wifi
Uygulama, cihazda 802.11 ağ (Kablosuz) özelliklerini kullanır.
android.hardware.wifi.direct
Uygulama, cihazdaki Kablosuz Doğrudan 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 tanıtılmaktadır. Uygulamanızın bir yazılım özelliği kullandığını veya bir yazılım özelliği gerektirdiğini belirtmek için "android.software" ile başlayan karşılık gelen değeri android:name özelliğinde tanımlayın. Bir yazılım özelliğini bildirdiğinizde 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 kullanarak video konferans ve anlık mesajlaşma gibi internet telefon işlemlerini destekleyebilir.
android.software.sip.voip

Uygulama, SIP tabanlı İnternet Üzerinden Ses İletişim Protokolü (VoIP) hizmetlerini kullanır. Uygulama, VoIP kullanarak iki yönlü video konferans gibi gerçek zamanlı internet telefon işlemlerini destekleyebilir.

Bu özellik kullanıldığında uygulamalar, android.software.sip özelliğini de kullandığını ima eder (bu üst özellik android:required="false" ile açıklanmadığı sürece).

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 gerçekleştirme mantığı içerir.
android.software.device_admin
Uygulama, bir 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, yeniden başlatma işlemi sırasında cihaz yapılandırmasının değişip değişmediğini algılayan cihazın doğrulanmış başlatma özelliğinden gelen sonuçları işlemek için bir mantığa sahiptir.

Medya yazılımı özellikleri

android.software.midi
Uygulama, müzik enstrümanlarına bağlanır veya Müzik Enstrümanı Dijital Arayüzü (MIDI) protokolünü kullanarak ses çıkarır.
android.software.print
Uygulama, cihazda görüntülenen dokümanları yazdırmaya yönelik 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ını yerleştirebileceği bir Ana ekran veya benzer bir konuma sahip cihazlar için tasarlanmıştır.
android.software.home_screen
Uygulama, cihazın Ana ekranının yerine geçer.
android.software.live_wallpaper
Uygulama, animasyon içeren duvar kağıtları kullanıyor veya sağlıyor.

Özellik gereksinimlerinin bulunduğu 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 gerektirdiğini belirtmeden önce API'yi kullanabilir.

Google Play, bu uygulamaların yanlışlıkla kullanıma sunulmasını önlemek için donanımla ilgili belirli izinlerin, temel donanım özelliklerinin varsayılan olarak gerekli olduğunu belirttiğini varsayar. Örneğin, Bluetooth kullanan uygulamalar <uses-permission> öğesinde BLUETOOTH iznini istemelidir.

Google Play, eski uygulamalarda izin beyanının, uygulama için temel android.hardware.bluetooth özelliğinin 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 olan özellik gereksinimlerini ima eden izinler listelenmiştir.

Beyan edilen tüm android:required özellikleri dahil olmak üzere <uses-feature> bildirimleri, tablo 2'deki izinlerin belirttiği özelliklere göre her zaman önceliklidir. Bu izinlerin herhangi birinde, required özelliği false olarak ayarlanmış bir <uses-feature> öğesinde özelliği açık bir şekilde belirterek, 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 ya da GPS'ten 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 beyan etmeniz gerekir.

Tablo 2. Cihaz donanımı kullanımını ima eden cihaz izinleri.

Kategori İzin Özellik şartı
Bluetooth BLUETOOTH android.hardware.bluetooth

Ayrıntılar için Bluetooth özelliği için özel kullanım konusuna 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

android.hardware.location

android.hardware.location.network (Yalnızca hedef API düzeyi 20 veya daha düşük olduğunda.)

ACCESS_FINE_LOCATION

android.hardware.location

android.hardware.location.gps (Yalnızca hedef API düzeyi 20 veya daha düşük olduğunda.)

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 ağlar ACCESS_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_MULTICAST_STATE android.hardware.wifi