<uses-feature>

Google Play używa: <uses-feature> elementy zadeklarowane w manifeście aplikacji w celu filtrowania aplikacji z urządzeń które nie spełniają wymagań dotyczących funkcji sprzętowych lub oprogramowania.

Określając funkcje wymagane przez aplikację, pozwalasz Google Play udostępniać aplikację tylko użytkownikom, które spełniają wymagania aplikacji, zamiast ją prezentować. dla wszystkich użytkowników.

Ważne informacje o tym, jak Google Play wykorzystuje funkcje jako podstawę filtrowania – zobacz sekcję Google Play i filtrowanie oparte na funkcjach.

składnia:
<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />
zawarte w:
<manifest>
description:

Deklaruje pojedynczą funkcję sprzętu lub oprogramowania używaną przez aplikacji.

Celem deklaracji <uses-feature> jest informacja Każdy zewnętrzny podmiot w zestawie sprzętu i oprogramowania może zależy od konkretnego zastosowania. Element ma atrybut required, który pozwala określić, czy aplikacja wymaga i nie może działać bez zadeklarowana cecha lub woli ją mieć, ale może funkcjonować bez tego.

Obsługa funkcji może się różnić w zależności od urządzenia z Androidem, Element <uses-feature> odgrywa ważną rolę w umożliwianiu opisuje wykorzystywane przez nią funkcje zmiennych na urządzeniu.

Zestaw dostępnych funkcji, które deklaruje Twoja aplikacja zestawu stałych cech udostępnionych przez Androida PackageManager. Stałe cech są wymienione w sekcji Informacje o funkcjach w ten dokument.

Każdą cechę musisz określić w odrębnym <uses-feature> więc jeśli aplikacja wymaga wielu funkcji, wiele elementów <uses-feature>. Na przykład aplikacja który w deklaracji urządzenia wymaga zarówno Bluetootha, jak i funkcji aparatu te dwa elementy:

<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
<uses-feature android:name="android.hardware.camera.any" android:required="true" />

Ogólnie rzecz biorąc, zawsze deklaruj <uses-feature> dla wszystkich funkcji obsługiwanych przez wymaga aplikacji.

Zadeklarowane elementy <uses-feature> mają wyłącznie charakter informacyjny. Znaczenie że system Android nie sprawdza obsługi funkcji na urządzenia przed zainstalowaniem aplikacji.

Jednak inne usługi takich jak Google Play, i mogą sprawdzać Deklaracje <uses-feature> w ramach obsługi lub interakcji z Twoją aplikacją. Dlatego tak ważne jest zadeklarowanie wszystkich z jakich funkcji korzysta Twoja aplikacja.

W przypadku niektórych cech dostępny może być atrybut, który umożliwi zdefiniowanie wersji funkcji, np. używanej wersji Open GL (zadeklarowanej przy użyciu parametru glEsVersion). Inne funkcje, które działają lub nie działają dla urządzenia, takiego jak aparat, są deklarowane za pomocą name.

Chociaż element <uses-feature> jest aktywowany tylko dla urządzenia z interfejsem API poziomu 4 lub wyższym, uwzględnij te elementy w przypadku wszystkich aplikacji, nawet jeśli minSdkVersion wynosi 3 lub mniej. Urządzenia ze starszymi wersjami platformy ignorują elementu.

Uwaga: podczas deklarowania funkcji pamiętaj, że że musisz też poprosić o odpowiednie uprawnienia. Na przykład: poproś o CAMERA zanim aplikacja uzyska dostęp do interfejsu Camera API. Żądanie przyznaje aplikacji dostęp do odpowiedniego sprzętu oraz i oprogramowaniu. Deklarowanie funkcji używanych przez aplikację pomaga zapewnić prawidłowe działanie i urządzenia.

atrybuty:
android:name
Określa pojedynczą funkcję sprzętu lub oprogramowania używaną przez aplikację jako ciągiem deskryptora. Prawidłowe wartości atrybutów są wymienione w sekcji Funkcje sprzętowe i Oprogramowanie funkcje. W wartościach atrybutów rozróżniana jest wielkość liter.
android:required
Wartość logiczna wskazująca, czy aplikacja wymaga tej funkcji określono w funkcji android:name.
  • Zadeklarowanie wartości android:required="true" dla danej cechy oznacza, że aplikacja nie może działać lub nie jest zaprojektowane tak, aby działać, gdy określona funkcja nie jest dostępna urządzenia.
  • Zadeklarowanie wartości android:required="false" dla danej cechy oznacza, że aplikacja używa tej funkcji, jeśli jest dostępna ale jest zaprojektowane do działania bez .

Wartość domyślna pola android:required to "true"

android:glEsVersion
Wersja OpenGL ES wymagana przez aplikację. Im wyższa wartość 16 bitów, reprezentują liczbę główną, a ostatnie 16 bitów – liczbę mniejszą. Dla: Aby na przykład określić OpenGL ES w wersji 2.0, należy ustawić wartość „0x00020000” lub aby określić OpenGL ES 3.2, ustaw wartość „0x00030002”.

Aplikacja określa maksymalnie jeden element android:glEsVersion w pliku manifestu. Jeśli określa więcej niż jeden, parametr Zastosowano funkcję android:glEsVersion o najwyższej wartości liczbowej i wszystkie inne wartości są ignorowane.

Jeśli aplikacja nie określa android:glEsVersion , zakładamy, że aplikacja wymaga wyłącznie OpenGL ES 1.0, który jest obsługiwany przez wszystkie urządzenia z systemem Android.

Aplikacja może zakładać, że jeśli platforma obsługuje dany standard OpenGL ES obsługuje też wszystkie wersje OpenGL ES o niższych numerach. Dlatego w przypadku opcji aplikację, która wymaga zarówno OpenGL ES 1.0, jak i OpenGL ES 2.0, określ że wymaga ona OpenGL ES 2.0.

W przypadku aplikacji, która może działać z dowolną z kilku wersji OpenGL ES, określać tylko najniższą numeryczną wersję OpenGL ES, której wymaga. it może sprawdzić w czasie działania, czy jest dostępny wyższy poziom OpenGL ES.

Więcej informacji o korzystaniu z platformy OpenGL ES, w tym o sprawdzaniu obsługiwanych interfejsów OpenGL ES w trakcie działania, patrz OpenGL ES Przewodnik po interfejsach API.

wprowadzone w:
Poziom API 4
zobacz też:

Google Play i filtrowanie oparte na funkcjach

Google Play filtruje aplikacje widoczne dla użytkowników, Użytkownicy mogą wyświetlać i pobierać tylko aplikacje zgodne z urządzenia użytkownika. Jednym ze sposobów filtrowania aplikacji jest zgodność.

Aby określić zgodność funkcji aplikacji z urządzenia, Google Play porównuje:

  • Funkcje wymagane przez aplikację zgodnie z opisem w <uses-feature> elementów w pliku manifestu aplikacji.
  • Funkcje dostępne na urządzeniu, na sprzęcie lub w oprogramowaniu, zgodnie z zgłoszeniami za pomocą właściwości systemowych dostępnych tylko do odczytu.

Aby dokładnie porównać funkcje, udostępnia wspólny zestaw stałych cech, które zarówno aplikacje, jak i urządzenia służy do deklarowania wymagań dotyczących funkcji i wsparcia. Dostępne stałe cech są wymienione w sekcji Informacje o funkcjach. oraz w dokumentacji zajęć dotyczącej PackageManager

Gdy użytkownik uruchomi Google Play, aplikacja wyśle zapytanie do menedżera pakietów, gdzie znajdziesz listę funkcji dostępnych na urządzeniu po wywołaniu getSystemAvailableFeatures() Sklep aplikacji przekazuje listę funkcji do Google Play. podczas nawiązywania sesji dla użytkownika.

Za każdym razem, gdy przesyłasz aplikację do Konsoli Google Play, Google Play przeskanuje plik manifestu aplikacji. Szuka <uses-feature> elementów i ocenia je w połączeniu z innymi elementami, w niektórych przypadkach, takimi jak <uses-sdk> czy <uses-permission> elementów. Po utworzeniu do zestawu wymaganych funkcji aplikacji, zapisuje ona tę listę wewnętrznie jako metadane powiązane z pakietem APK aplikacji i aplikacją wersji.

Gdy użytkownik wyszukuje lub przegląda aplikacje w Google Play aplikacji, usługa porównuje funkcje potrzebne każdej aplikacji z funkcje dostępne na urządzeniu użytkownika. Jeśli wszystkie wymagane elementy aplikacji ze wszystkich funkcji na urządzeniu, Google Play pozwala użytkownikowi zobaczyć i ewentualnie ją pobrać.

Jeśli jakaś wymagana funkcja nie jest przez urządzenie, Google Play filtruje aplikację tak, by nie była widoczne dla użytkownika i dostępne do pobrania.

Funkcje zadeklarowane w <uses-feature> elementy bezpośrednio wpływają na sposób filtrowania aplikacji przez Google Play. Musisz wiedzieć, jak Google Play ocenia plik manifestu aplikacji i ustanawia zestaw wymaganych funkcji. W sekcjach poniżej znajdziesz więcej i informacjami o nich.

Filtrowanie na podstawie jawnie zadeklarowanych funkcji

Jawnie zadeklarowana funkcja to funkcja deklarowana przez aplikację w tagu <uses-feature> element. Deklaracja funkcji może zawierać atrybut android:required=["true" | "false"], jeśli kompilację do interfejsu API na poziomie 5 lub wyższym.

Pozwala to określić, czy aplikacja wymaga tej funkcji i nie może prawidłowo działać bez go ("true") lub korzysta z funkcji jeśli jest dostępny, ale ma działać bez niego ("false").

Google Play obsługuje jawnie zadeklarowane funkcje w ten sposób:

  • Jeśli funkcja jest jawnie zadeklarowana jako wymagana, jak w tym przykładzie na przykład Google Play dodaje na listę funkcji wymaganych przez aplikację. Następnie odfiltrowuje aplikację od użytkowników korzystających z urządzeń, które nie mają tej funkcji.
    <uses-feature android:name="android.hardware.camera.any" android:required="true" />
    
  • Jeśli funkcja jest wyraźnie zadeklarowana jako niewymagana, na przykład następujący przykład: Google Google Play nie doda danej funkcji do listy wymaganych. Dla: z tego powodu jawnie zadeklarowana niewymagana funkcja nigdy nie jest brana pod uwagę, filtrowanie aplikacji. Nawet jeśli urządzenie nie dostarcza zadeklarowanych zostanie uznana za zgodną z urządzenia i wyświetla je użytkownikowi, chyba że będą miały zastosowanie inne reguły filtrowania.
    <uses-feature android:name="android.hardware.camera" android:required="false" />
    
  • Jeśli funkcja jest jawnie zadeklarowana, ale bez android:required, Google Play zakłada, że funkcja i skonfiguruje filtrowanie.

Ogólnie rzecz biorąc, jeśli aplikacja jest przeznaczona do działania na Androidzie 1.6 lub starszym, atrybut android:required nie jest dostępny w API i Google Play zakłada, że wszystkie Wymagane są deklaracje typu <uses-feature>.

Uwaga: wyraźnie deklarując funkcję i z atrybutem android:required="false", możesz całkowicie wyłączysz filtrowanie w Google Play pod kątem wybranej funkcji.

Filtruj na podstawie funkcji niejawnych

Funkcja pośrednia to funkcja, której aplikacja wymaga, działa prawidłowo, ale która nie jest zadeklarowana w <uses-feature> w pliku manifestu. Ściśle ogólnie rzecz biorąc, w każdej aplikacji najlepiej zawsze zadeklarować wszystkie funkcje, zastosowań lub wymagań, a brak deklaracji dotyczącej funkcji używanej przez aplikacji można uznać za błąd.

Jednak w ramach środków ochrony dla użytkowników programistów, Google Play szuka niejawnych funkcji w każdej aplikacji konfiguruje filtry dla tych funkcji, tak jak w przypadku zadeklarowanych funkcji.

Aplikacja może wymagać określonej funkcji, ale nie może jej zadeklarować z tych powodów:

  • Aplikacja została skompilowana na podstawie starszej wersji biblioteki Androida (Android 1.5 lub starszy), w przypadku którego element <uses-feature> nie jest i dostępności informacji.
  • Deweloper nieprawidłowo zakłada, że dana funkcja jest dostępna we wszystkich urządzeń i deklaracja jest zbędna.
  • Deweloper przypadkowo pomija deklarację funkcji.
  • Deweloper jawnie deklaruje funkcję, ale deklaracja nie prawidłowe. Na przykład błąd pisowni w polu <uses-feature> nazwy elementu lub nierozpoznanej wartości ciągu znaków dla atrybutu Atrybut android:name unieważnia deklarację funkcji.

Aby to uwzględnić, Google Play próbuje wykryć wymagania dotyczące domniemanej funkcji aplikacji przez sprawdzenie innych elementów zadeklarowano w pliku manifestu, <uses-permission> elementów.

Jeśli aplikacja żąda uprawnień związanych ze sprzętem, Google Play zakłada, że aplikacja korzysta z podstawowych funkcji sprzętowych dlatego wymaga tych funkcji, nawet jeśli nie ma odpowiednich deklaracji <uses-feature>. Jeśli chodzi o: uprawnień, Google Play doda podstawowe funkcje sprzętowe metadanych, które przechowuje dla aplikacji, i konfiguruje dla nich filtry.

Jeśli na przykład aplikacja prosi o uprawnienie CAMERA, Google Play zakłada, że aplikacja wymaga tylnego aparatu (skierowanego w stronę świata), nawet jeśli jeśli aplikacja nie zadeklaruje elementu <uses-feature> dla android.hardware.camera Dlatego Google Play filtruje urządzenia, które nie mają tylnego aparatu.

Jeśli nie chcesz, żeby Google Play filtrował treści na podstawie konkretnego domniemanego funkcję, jawnie zadeklaruj ją w <uses-feature> i uwzględnij atrybut android:required="false". Dla: na przykład, aby wyłączyć filtrowanie domniemane przez uprawnienie CAMERA, deklaruj te funkcje:

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

Uwaga: uprawnienia, o które prosisz: Elementy <uses-permission> mogą bezpośrednio wpływać na sposób, w jaki Google Google Play filtruje aplikację. Sekcja Uprawnienia, które wymagają podania wymagań funkcji, zawiera listę pełny zestaw uprawnień, które nakładają na użytkowników wymagania dotyczące funkcji i dlatego aktywują filtrowaniu.

Specjalna obsługa funkcji Bluetooth

Google Play stosuje nieco inne reguły niż opisane w poprzednim przykładzie, filtrowaniu dla Bluetootha.

Jeśli aplikacja deklaruje uprawnienia dotyczące Bluetootha w <uses-permission> element, ale nie jest jawnie deklarowany funkcję Bluetooth w elemencie <uses-feature>, Google Google Play sprawdza wersje platformy Androida, na której działa aplikacja przeznaczone do działania zgodnie z definicją w elemencie <uses-sdk>.

Jak widać w tabeli poniżej, Google Play umożliwia filtrowanie Funkcja Bluetooth tylko wtedy, gdy aplikacja deklaruje najniższy poziom lub kierowanie. Androida w wersji 2.0 (poziom interfejsu API 5) lub nowszego. Pamiętaj jednak, że Google Google Play stosuje standardowe reguły filtrowania, gdy aplikacja wyraźnie deklaruje funkcję Bluetooth w elemencie <uses-feature>.

Tabela 1. Jak Google Play określa Funkcja Bluetooth wymagana w przypadku aplikacji, która prosi o połączenie Bluetooth uprawnienia, ale nie deklaruje funkcji Bluetooth w <uses-feature> element.

Jeśli minSdkVersion to ... a targetSdkVersion to Wynik
<=4 lub <uses-sdk> nie jest zadeklarowana <= 4 Google Play nie odfiltrowuje aplikacji z żadnych urządzeń. na podstawie zgłoszonego wsparcia przez operatora android.hardware.bluetooth funkcji.
<= 4 >= 5 Google Play odfiltrowuje aplikację ze wszystkich urządzeń, które nie obsługują funkcji android.hardware.bluetooth (w tym starszych wersji).
>= 5 >= 5

Przykłady poniżej ilustrują różne efekty filtrowania w zależności od tego, Za obsługę funkcji Bluetooth odpowiada Google Play.

W pierwszym przykładzie aplikacja została zaprojektowana do uruchamiania na starszych poziomach interfejsu API. deklaruje uprawnienia dotyczące Bluetootha, ale nie deklaruje funkcji Bluetooth w <uses-feature>.
Wynik: Google Play nie filtruje aplikacji z żadnego urządzenia.
.
.
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" />
    ...
</manifest>
. W drugim przykładzie ta sama aplikacja także deklaruje element docelowy Poziom interfejsu API „5”.
Wynik: Google Play zakłada, że ta funkcja jest wymagana, filtruje aplikację ze wszystkich urządzeń, które nie zgłaszają obsługi Bluetootha, w tym na urządzeniach ze starszymi wersjami platformy.
.
.
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>
. Ta sama aplikacja deklaruje teraz funkcję Bluetooth.
Wynik: identyczne jak w poprzednim przykładzie – zastosowano filtrowanie.
.
.
<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>
. Ponadto w poniższym przypadku ta sama aplikacja dodaje tag android:required="false".
Wynik: Google Play wyłącza filtrowanie na podstawie Bluetootha obsługę funkcji na wszystkich urządzeniach.
<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>

Testowanie funkcji wymaganych przez aplikację

Możesz użyć narzędzia aapt2, które znajdziesz w pakiecie Android SDK, określają, jak Google Play filtruje aplikację na podstawie zadeklarowanych funkcje i uprawnienia. Aby to zrobić, uruchom aapt2 za pomocą polecenia dump badging. Sprawia to, że aapt2 analizuje pliku manifestu aplikacji i stosują te same reguły, które Google Play określić, jakie funkcje potrzebuje Twoja aplikacja.

Aby użyć tego narzędzia, wykonaj następujące czynności:

  1. Skompiluj i wyeksportuj aplikację jako niepodpisany pakiet APK. Jeśli programujesz w Android Studio, skompiluj aplikację przy użyciu Gradle w ten sposób:
    1. Otwórz projekt i wybierz Uruchom > Edytuj konfiguracje.
    2. W pobliżu lewego górnego rogu okna Uruchom/debuguj kliknij znak plusa Konfiguracje.
    3. Wybierz Gradle.
    4. Wpisz „Niepodpisany plik APK” w polu Nazwa.
    5. Wybierz moduł w sekcji Projekt Gradle.
    6. Wpisz „zestaw” w Liście zadań.
    7. Kliknij OK, aby zakończyć nową konfigurację.
    8. Upewnij się, że wybrana jest konfiguracja uruchamiania niepodpisanego pliku APK. na pasku narzędzi, a następnie wybierz Uruchom > Uruchom „Niepodpisany plik APK”.
    . Niepodpisany pakiet APK znajdziesz w <ProjectName>/app/build/outputs/apk/.
  2. Znajdź narzędzie aapt2, jeśli nie ma go jeszcze w ścieżce PATH. Jeśli używasz SDK Tools w wersji r8 lub nowszej, aapt2 znajdziesz w <SDK>/build-tools/<tools version number> katalogu.

    Uwaga: musisz użyć wersji usługi aapt2 dostępny w przypadku najnowszego dostępnego komponentu narzędzi kompilacji. Jeśli nie masz najnowszego komponentu Build-Narzędzia, pobierz go za pomocą Menedżera pakietów SDK na Androida.

  3. Uruchom polecenie aapt2 przy użyciu tej składni:
$ aapt2 dump badging <path_to_exported_.apk>

Oto przykład danych wyjściowych polecenia dla drugiego przykładu Bluetootha poprzednio:

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

Dokumentacja funkcji

W sekcjach poniżej znajdziesz informacje o funkcjach sprzętowych, funkcje oprogramowania i zestawy uprawnień, które sugerują określone funkcje .

Funkcje sprzętowe

W tej sekcji omawiamy funkcje sprzętowe obsługiwane przez najnowsze systemy wersji platformy. Informacja, że aplikacja używa lub wymaga sprzętu. funkcji, zadeklaruj odpowiednią wartość, zaczynając od "android.hardware" w atrybucie android:name. Przy każdej deklaracji funkcji sprzętowej użyj oddzielnego <uses-feature> element.

Funkcje sprzętu audio

android.hardware.audio.low_latency
Aplikacja wykorzystuje potok audio o małym opóźnieniu urządzenia, co zmniejsza opóźnienie opóźnienia przetwarzania danych wejściowych lub wyjściowych dźwięku.
android.hardware.audio.output
Aplikacja przesyła dźwięk za pomocą głośników urządzenia, gniazda słuchawek i Bluetootha za pomocą funkcji strumieniowania lub podobnych mechanizmów.
android.hardware.audio.pro
Aplikacja korzysta z funkcji wysokiej jakości dźwięku i wydajności urządzenia funkcje zabezpieczeń.
android.hardware.microphone
Aplikacja nagrywa dźwięk za pomocą mikrofonu urządzenia.

Funkcje sprzętowe Bluetooth

android.hardware.bluetooth
Aplikacja używa funkcji Bluetooth urządzenia, zwykle do komunikowania się z: z innymi urządzeniami obsługującymi Bluetooth.
android.hardware.bluetooth_le
Aplikacja używa funkcji radiowych Bluetooth Low Energy urządzenia.

Funkcje sprzętowe aparatu

Uwaga: aby uniknąć niepotrzebnego filtrowania aplikacji według Google Play, dodaj android:required="false" do dowolnej funkcji aparatu bez których Twoja aplikacja może działać. W przeciwnym razie Google Play zakłada, że funkcja jest jest wymagane i uniemożliwia urządzeniom, które nie obsługują tej funkcji, na dostęp do .

Obsługa dużych ekranów

Niektóre urządzenia z dużym ekranem nie obsługują wszystkich funkcji aparatu. Chromebooki zazwyczaj nie mają tylnych aparatów, autofokusa ani lampy błyskowej. Ale Chromebooki mają przednie aparaty (skierowane do użytkownika) i często są podłączone do z zewnętrznych kamer.

Aby zapewnić podstawową obsługę aparatu i udostępnić aplikację jak największej liczbie osób urządzeń, dodaj do aplikacji te ustawienia funkcji aparatu plik manifestu:

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

Dostosuj ustawienia funkcji do potrzeb aplikacji. Aby jednak zapewnić z aplikacji dostępnej na największej liczbie urządzeń, zawsze dodawaj required, który jednoznacznie określa, czy cecha jest niezbędny dodatek.

Lista funkcji
android.hardware.camera.any

Aplikacja używa jednej z aparatów urządzenia lub podłączonej kamery zewnętrznej urządzenia. Użyj tej funkcji zamiast usługi android.hardware.camera lub android.hardware.camera.front, jeśli aplikacja nie wymaga, aby aparat był skierowany tyłem (w stronę świata) lub z przodu (użytkownik). .

Uprawnienie CAMERA oznacza, że aplikacja używa też android.hardware.camera Tylny aparat jest wymagany jeśli nie zadeklarowano android.hardware.camera z parametrem android:required="false"

android.hardware.camera

Aplikacja używa tylnego aparatu urządzenia (skierowanego w stronę świata).

Uwaga: urządzenia takie jak Chromebooki, które mają tylko przedni aparat (widoczny dla użytkownika) nie obsługuje tej funkcji. Używaj android.hardware.camera.any, jeśli aplikacja może używać dowolnego aparatu, niezależnie od kierunku, w którym patrzy.

Uwaga: atrybut CAMERA. oznacza, że tylny aparat jest wymagany. Chcemy zapewnić odpowiednie filtrowanie w Google Play, jeśli plik manifestu aplikacji zawiera CAMERA (wyraźnie określ, czy aplikacja ma korzystać z tych uprawnień) funkcję camera i określ, czy jest wymagana, na przykład:
<uses-feature android:name="android.hardware.camera" android:required="false" />

android.hardware.camera.front

Aplikacja używa przedniego aparatu urządzenia (kierowanego do użytkownika).

Uprawnienie CAMERA oznacza, że aplikacja używa też android.hardware.camera Tylny aparat jest wymagany jeśli nie zadeklarowano android.hardware.camera z parametrem android:required="false"

Uwaga: jeśli aplikacja używa android.hardware.camera.front, ale bez deklaracji android.hardware.camera z android.required="false", urządzenia bez tylnej części aparat (np. Chromebook) jest filtrowany przez Google Play. Jeśli aplikacja obsługuje urządzeń z samym przednim aparatem, zadeklaruj android.hardware.camera z parametrem android.required="false", aby uniknąć niepotrzebnego filtrowania.

android.hardware.camera.external

Aplikacja komunikuje się z kamerą zewnętrzną, z którą użytkownik się połączy urządzenia. Ta funkcja nie gwarantuje, że kamera zewnętrzna jest dostępna których aplikacja ma używać.

Uprawnienie CAMERA oznacza, że aplikacja używa też android.hardware.camera Tylny aparat jest wymagany jeśli nie zadeklarowano android.hardware.camera z parametrem android:required="false"

android.hardware.camera.autofocus

Aplikacja używa funkcji autofokusa obsługiwanej przez aparat urządzenia.

Uwaga: atrybut CAMERA. oznacza, że autofokus jest funkcją wymaganą. Aby zapewnić ich prawidłowe działanie, filtrowaniu w Google Play, jeśli plik manifestu aplikacji zawiera CAMERA, musisz wyraźnie wskazać, że aplikacja używa autofokus i określ, czy jest wymagany, na przykład:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

android.hardware.camera.flash

Aplikacja używa funkcji lampy błyskowej obsługiwanej przez aparat urządzenia.

android.hardware.camera.capability.manual_post_processing

Aplikacja używa funkcji MANUAL_POST_PROCESSING obsługiwanej przez z aparatu urządzenia.

Ta funkcja pozwala aplikacji zastąpić automatyczny balans bieli aparatu funkcji. Użyj konta android.colorCorrection.transform, android.colorCorrection.gains oraz android.colorCorrection.mode z TRANSFORM_MATRIX

android.hardware.camera.capability.manual_sensor

Aplikacja używa funkcji MANUAL_SENSOR obsługiwanej przez z aparatu w telefonie.

Ta funkcja sugeruje, że obsługuje ona blokowanie automatycznej ekspozycji (android.control.aeLock), który włącza ekspozycję aparatu czasu i czułości, aby utrzymać się na określonych wartościach.

android.hardware.camera.capability.raw

Aplikacja używa funkcji RAW obsługiwanej przez aparat fotograficzny.

Ta funkcja oznacza, że urządzenie może zapisywać nieprzetworzone pliki DNG. obraz z aparatu dostarcza metadane związane z DNG, bezpośrednio do przetwarzania nieprzetworzonych obrazów.

android.hardware.camera.level.full
Aplikacja używa poziomu FULL obsługi przechwytywania obrazu za pomocą co najmniej jednej z aparatów urządzenia. Pomoc FULL obejmuje funkcje robienia zdjęć seryjnych, kontrola na ramkę i ręczne przetwarzanie końcowe . Zobacz INFO_SUPPORTED_HARDWARE_LEVEL_FULL

Funkcje sprzętowe interfejsu urządzenia

android.hardware.type.automotive

Aplikacja jest tak zaprojektowana, aby wyświetlać interfejs użytkownika na kilku ekranach w pojeździe. Użytkownik wchodzi w interakcję z aplikacją za pomocą twardych przycisków, dotyku lub pokrętła przy użyciu kontrolerów i interfejsów podobnych do myszy. Ekrany pojazdu zwykle są widoczne na środkowej konsoli lub w grupie przyrządów w pojeździe. Te i zwykle mają ograniczoną rozdzielczość.

Uwaga: użytkownik gdy jedzie podczas korzystania z tego typu interfejsu aplikacji, aplikacja musi minimalizować kierowcę lub rozpraszanie uwagi.

android.hardware.type.television

(Wycofano; użyj android.software.leanback).

Aplikacja jest zaprojektowana tak, aby wyświetlać interfejs na telewizorze. Ta cecha definiuje „telewizor” jak podczas oglądania telewizji w salonie: aplikacja na dużym ekranie, użytkownik siedzi daleko i dominująca forma jako pada kierunkowego zamiast myszy, wskaźnikiem lub urządzeniem dotykowym.

android.hardware.type.watch
Aplikacja wyświetla interfejs na zegarku. Zegarek zakłada się na ciało. na przykład na nadgarstku. użytkownik znajduje się bardzo blisko urządzenia, wchodzenia z nią w interakcję.
android.hardware.type.pc

Aplikacja jest zaprojektowana tak, aby pokazywać interfejs na Chromebookach. Ta funkcja zostanie wyłączona z użyciem emulacji wejściowej dla myszy i touchpada, ponieważ Chromebooki używają touchpada. Zobacz Mysz dane wejściowe.

Uwaga: ustaw required="false" dla tej wartości element; w przeciwnym razie Sklep Google Play zablokuje aplikację na urządzeniach. niż Chromebooki.

Funkcje czytnika linii papilarnych

android.hardware.fingerprint
Aplikacja odczytuje odciski palców za pomocą sprzętu biometrycznego urządzenia.

Funkcje pada do gier

android.hardware.gamepad
Aplikacja przechwytuje dane wejściowe kontrolera gry pochodzące z samego urządzenia lub za pomocą połączonego pada do gier.

Funkcje sprzętu na podczerwień

android.hardware.consumerir
Aplikacja wykorzystuje podczerwień (IR) urządzenia, zwykle do komunikują się z innymi urządzeniami IR.

Funkcje sprzętowe lokalizacji

android.hardware.location
aplikacja używa co najmniej jednej funkcji urządzenia do określania lokalizacji, takie jak lokalizacja GPS, lokalizacja sieciowa czy lokalizacja komórki.
android.hardware.location.gps

Aplikacja używa dokładnych współrzędnych lokalizacji uzyskanych z globalnych Odbiornik systemu pozycjonowania (GPS) urządzenia.

Korzystając z tej funkcji, aplikacja oznacza, że używa też Funkcja android.hardware.location, chyba że ten element nadrzędny cecha jest zadeklarowana z atrybutem android:required="false"

android.hardware.location.network

Aplikacja używa przybliżonych współrzędnych lokalizacji uzyskanych z sieci system geolokalizacji na urządzeniu.

Korzystając z tej funkcji, aplikacja oznacza, że używa też Funkcja android.hardware.location, chyba że ten element nadrzędny cecha jest zadeklarowana z atrybutem android:required="false"

Funkcje sprzętowe NFC

android.hardware.nfc
Aplikacja używa na urządzeniu funkcji komunikacji Near-Field Communication (NFC).
android.hardware.nfc.hce

Aplikacja używa emulacji karty NFC hostowanej na urządzeniu.

Funkcje sprzętowe OpenGL ES

android.hardware.opengles.aep
Aplikacja używa zainstalowanego pakietu OpenGL ES Android Extension Pack na urządzeniu.

Funkcje czujników

android.hardware.sensor.accelerometer
Aplikacja wykrywa ruch na podstawie odczytów z akcelerometru urządzenia bieżącej orientacji urządzenia. Aplikacja może na przykład używać funkcji z odczytów z akcelerometru, by określić, kiedy przełączyć między trybem pionowym w orientacji poziomej.
android.hardware.sensor.ambient_temperature
Aplikacja używa czujnika temperatury otoczenia (środowiska) urządzenia. Dla: Na przykład aplikacja pogodowa może podawać temperaturę w pomieszczeniu i na zewnątrz.
android.hardware.sensor.barometer
Aplikacja używa barometru urządzenia. Na przykład aplikacja pogodowa może i raportować ciśnienie powietrza.
android.hardware.sensor.compass
Aplikacja używa magnetometru (kompasa) urządzenia. Na przykład element nawigacyjny aplikacja może pokazywać bieżący kierunek, w którym patrzy użytkownik.
android.hardware.sensor.gyroscope
Aplikacja używa żyroskopu urządzenia do wykrywania obracania się i obrócenia, tworząc czyli sześcioosiowego systemu orientacji. Dzięki temu czujnikowi aplikacja może wykryć więcej płynnie przełączać się między pionową i poziomą lub orientacji strony.
android.hardware.sensor.hifi_sensors
Aplikacja używa czujników urządzenia o wysokiej wierności (Hi-Fi). Na przykład plik gra mobilna może wykryć bardzo precyzyjne ruchy użytkownika.
android.hardware.sensor.heartrate
Aplikacja wykorzystuje pulsometr w urządzeniu. Na przykład aplikacja do fitnessu mogą informować o zmianach tętna na przestrzeni czasu.
android.hardware.sensor.heartrate.ecg
Aplikacja korzysta z elektrokardiogramu (EKG) urządzenia do pomiaru tętna. Dla: na przykład aplikacja do fitnessu może podawać bardziej szczegółowe informacje tętno użytkownika.
android.hardware.sensor.light
Aplikacja korzysta z czujnika światła w urządzeniu. Na przykład aplikacja może wyświetlać jeden z dwóch schematów kolorów bazujących na jasności otoczenia. warunków.
android.hardware.sensor.proximity
Aplikacja używa czujnika zbliżeniowego urządzenia. Na przykład aplikacja telefoniczna może wyłączyć ekran urządzenia, gdy aplikacja wykryje, że użytkownik trzymając urządzenie blisko ciała.
android.hardware.sensor.relative_humidity
Aplikacja używa czujnika wilgotności względnej urządzenia. Na przykład: pogoda aplikacja może używać wilgotności do obliczania i raportowania aktualnego punktu rosy.
android.hardware.sensor.stepcounter
Aplikacja używa licznika kroków urządzenia. Na przykład aplikacja do fitnessu może Raportuj liczbę kroków, które musi wykonać użytkownik, aby osiągnąć swój dzienny krok cel liczby.
android.hardware.sensor.stepdetector
Aplikacja używa detektora kroków urządzenia. Na przykład aplikacja do fitnessu może użyj odstępu czasu między krokami, aby określić rodzaj ćwiczenia co użytkownik robi.

Funkcje ekranu

android.hardware.screen.landscape
android.hardware.screen.portrait

Aplikacja wymaga, aby urządzenie miało orientację pionową lub poziomą. Jeśli aplikacja obsługuje obie orientacje, nie musisz deklarować jedną z tych funkcji.

Na przykład: jeśli aplikacja wymaga orientacji pionowej, zadeklaruj tę funkcję, aby tylko urządzenia obsługujące tę funkcję w orientacji pionowej (zawsze lub według wyboru użytkownika) można uruchamiać aplikację:

<uses-feature android:name="android.hardware.screen.portrait" />

Zakładamy, że obie orientacje nie są domyślnie wymagane, więc aplikacja może na urządzeniach obsługujących jedną lub obie orientacje. Jeśli jednak wymaga, aby były prowadzone w określonej orientacji, za pomocą atrybutu android:screenOrientation, ta deklaracja wskazuje, że aplikacja wymaga takiej orientacji.

Na przykład, jeśli zadeklarujesz android:screenOrientation z wartością "landscape", "reverseLandscape" lub "sensorLandscape", aplikacja jest jest dostępna wyłącznie na urządzeniach obsługujących orientację poziomą.

Zgodnie ze sprawdzoną metodą zadeklaruj, czy spełniasz te wymagania. orientację przy użyciu elementu <uses-feature>. Jeśli zadeklarujesz orientację dla Twojej aktywności przy użyciu android:screenOrientation, ale nie są naprawdę potrzebne, wyłącz to wymaganie, zadeklarując orientację za pomocą elementu <uses-feature> i uwzględniając android:required="false".

Aby zapewnić zgodność wsteczną, wszystkie urządzenia z Androidem 3.1 (poziom interfejsu API 12) lub niższy obsługuje orientację poziomą i pionową.

Funkcje sprzętu telefonicznego

android.hardware.telephony
Aplikacja używa funkcji telefonicznych urządzenia, takich jak radiotelefoniczne, usług komunikacji danych.
android.hardware.telephony.cdma

Aplikacja używa radia telefonicznego CDMA (Code Division Multiple Access) systemu.

Korzystając z tej funkcji, aplikacja oznacza, że używa też Funkcja android.hardware.telephony, chyba że ten element nadrzędny funkcja jest zadeklarowana za pomocą funkcji android:required="false".

android.hardware.telephony.gsm

Aplikacja używa połączeń telefonicznych GSM (Global System for Mobile Communications) przez system radiowy.

Korzystając z tej funkcji, aplikacja oznacza, że używa też Funkcja android.hardware.telephony, chyba że ten element nadrzędny funkcja jest zadeklarowana za pomocą funkcji android:required="false".

Funkcje ekranu dotykowego

android.hardware.faketouch

Aplikacja używa podstawowych zdarzeń interakcji dotykiem, takich jak przeciąganie.

Gdy zadeklarujesz tę funkcję jako wymaganą, wskazuje ona, że zgodne z urządzeniem tylko wtedy, gdy ma ono emulowaną funkcję „fake Touch” ekran dotykowy lub ma własny ekran dotykowy.

Urządzenie z fałszywym interfejsem dotykowym udostępnia system wprowadzania danych użytkownika emulujący niektóre funkcje ekranu dotykowego. Na przykład plik mysz lub pilot może sterować kursorem na ekranie.

Jeśli Twoja aplikacja wymaga podstawowej interakcji typu „wskaż i kliknij” i nie działa; używając tylko kontrolera pada kierunkowego, zadeklaruj tę funkcję. Ponieważ To minimalny poziom interakcji dotykowego. Możesz też użyć aplikacji, która deklaruje tę funkcję na urządzeniach, które oferują bardziej złożone funkcje dotykowe. i interfejsów.

Aplikacje wymagają: android.hardware.faketouch funkcja domyślnie. Jeśli chcesz ograniczenie wyświetlania Twojej aplikacji tylko na urządzeniach z ekranem dotykowym, musisz wyraźnie zadeklaruj, że ekran dotykowy jest wymagany. Użyj w tym celu:

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

Wszystkie aplikacje bez wyraźnego wymogu android.hardware.touchscreen, jak widać w przykładzie poniżej, działają na urządzeniach z pakietem android.hardware.faketouch.

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

Aplikacja śledzi co najmniej 2 różne „palce”. na imitacji interfejsu dotykowego. To jest nadzbiór klasy android.hardware.faketouch funkcji. Gdy zadeklarujesz tę funkcję jako wymaganą, wskazuje ona, że aplikacja jest zgodne z urządzeniem tylko wtedy, gdy emuluje ono różne śledzenie co najmniej dwóch palców lub jest wyposażony w ekran dotykowy.

W przeciwieństwie do oddzielnego modelu wielodotykowego zdefiniowanego przez android.hardware.touchscreen.multitouch.distinct urządzenia wejściowe, które obsługa różnych urządzeń wielodotykowych z wykorzystaniem fałszywego interfejsu dotykowego nie obsługuje wszystkich funkcji gesty z użyciem 2 palców – dane wejściowe są przekształcane w ruch kursora na ekranie. Oznacza to, że gesty z użyciem 1 palca na takim urządzeniu przesuwają przesunięcie dwoma palcami powoduje, że użytkownik dotknie 1 palcem. inne gesty uruchamiają odpowiedni dotyk 2 palcami zdarzeń.

Urządzenie z touchpadem dotykowym 2 palcami do poruszania kursorem obsługuje tę funkcję.

android.hardware.faketouch.multitouch.jazzhand

Aplikacja śledzi co najmniej 5 „palców” na imitacji interfejsu dotykowego. To jest nadzbiór klasy android.hardware.faketouch funkcji. Gdy zadeklarujesz tę funkcję jako wymaganą, wskazuje ona, że aplikacja jest zgodne z urządzeniem tylko wtedy, gdy emuluje ono różne może śledzić co najmniej pięć palców lub mieć ekran dotykowy.

W przeciwieństwie do oddzielnego modelu wielodotykowego zdefiniowanego przez android.hardware.touchscreen.multitouch.jazzhand urządzenia wejściowe, które obsługa wielodotyku Jazzhand z fałszywym interfejsem dotykowym nie obsługuje wszystkich funkcji gesty z użyciem 5 palców – dane wejściowe są przekształcane w ruch kursora na ekranie. Oznacza to, że gesty z użyciem 1 palca na takim urządzeniu przesuwają gdy użytkownik obsługuje kursor, gesty z użyciem wielu palców powodują dotknięcie 1 palca, czy inne gesty wymagające użycia wielu palców uruchamiają odpowiedni dotknięcia.

Urządzenie z touchpadem dotykowym 5 palcami do poruszania kursorem obsługuje tę funkcję.

android.hardware.touchscreen

Aplikacja używa funkcji ekranu dotykowego urządzenia do obsługi gestów są bardziej interaktywne niż podstawowe zdarzenia dotykowe, takie jak flirt. To jest nadzbiór funkcji android.hardware.faketouch.

Domyślnie ta funkcja nie jest wymagana dla wszystkich aplikacji dostępne na urządzeniach, które obsługują tylko emulowany „fake Touch” za pomocą prostego interfejsu online. Możesz udostępnić aplikację na urządzeniach które wykorzystują fałszywy interfejs dotykowy, a nawet w urządzeniach, które obsługują tylko kontrolera pada kierunkowego, przez jawne zadeklarowanie, że ekran dotykowy niewymagane przy użyciu: android.hardware.touchscreen z android:required="false" Dodaj tę deklarację, jeśli aplikacja używa prawdziwego interfejsu z ekranem dotykowym, ale nie jest wymagany. Wszystkie aplikacje bez wyraźnego wymogu android.hardware.touchscreen działa też na urządzeniach z atrybutem android.hardware.faketouch

czy aplikacja faktycznie wymaga interfejsu dotykowego, np. gestów dotykowych, takich jak flirtowanie, nie musisz deklarować żadnego dotknięcia. funkcje interfejsu, bo są one domyślnie wymagane. Jest to jednak najlepiej, jeśli wyraźnie zadeklarujesz wszystkie funkcje, z których korzysta aplikacja.

Jeśli potrzebujesz bardziej złożonej interakcji z dotykiem, np. wymagających użycia wielu palców gesty, zadeklaruj, że Twoja aplikacja używa zaawansowanego ekranu dotykowego funkcje zabezpieczeń.

android.hardware.touchscreen.multitouch

Aplikacja wykorzystuje podstawowe funkcje dwupunktowej wielodotyku urządzenia, takie jak: jak w przypadku gestów ściągnięcia, ale aplikacja nie musi śledzić dotknięć dzięki czemu mogą pracować niezależnie. To jest nadzbiór android.hardware.touchscreen funkcja.

Korzystając z tej funkcji, aplikacja oznacza, że używa też Funkcja android.hardware.touchscreen, chyba że ten element nadrzędny funkcja jest zadeklarowana za pomocą funkcji android:required="false".

android.hardware.touchscreen.multitouch.distinct

Aplikacja wykorzystuje zaawansowane funkcje wielodotykowe urządzenia do śledzenia dwa lub więcej punktów niezależnie. Ta funkcja jest nadzbiorem funkcji android.hardware.touchscreen.multitouch funkcja.

Korzystając z tej funkcji, aplikacja oznacza, że używa też android.hardware.touchscreen.multitouch, chyba że ta cecha nadrzędna jest zadeklarowana za pomocą metody android:required="false".

android.hardware.touchscreen.multitouch.jazzhand

Aplikacja wykorzystuje zaawansowane funkcje wielodotykowe urządzenia do śledzenia pięć lub więcej punktów. Ta funkcja jest nadzbiorem funkcji android.hardware.touchscreen.multitouch funkcja.

Korzystając z tej funkcji, aplikacja oznacza, że używa też android.hardware.touchscreen.multitouch, chyba że ta cecha nadrzędna jest zadeklarowana za pomocą metody android:required="false".

Funkcje sprzętowe USB

android.hardware.usb.accessory
Aplikacja działa jak urządzenie USB i łączy się z hostami USB.
android.hardware.usb.host
Aplikacja korzysta z akcesoriów USB podłączonych do urządzenia. i służy jako host USB.

Funkcje sprzętu Vulkan

android.hardware.vulkan.compute
Aplikacja wykorzystuje funkcje obliczeniowe Vulkan. Ta funkcja oznacza, że aplikacja wymaga akceleracji sprzętowej. Implementacja interfejsu Vulkan. Wersja funkcji wskazuje poziom opcji funkcji obliczeniowych, których wymaga aplikacja, poza wymaganiami Vulkan 1.0. Jeśli na przykład aplikacja wymaga obsługi Vulkan na poziomie 0, zadeklaruj tę funkcję:
<uses-feature
    android:name="android.hardware.vulkan.compute"
    android:version="0"
    android:required="true" />
Więcej informacji o wersji funkcji znajdziesz tutaj: FEATURE_VULKAN_HARDWARE_COMPUTE.
android.hardware.vulkan.level
Aplikacja wykorzystuje funkcje z poziomu interfejsu Vulkan. Ta funkcja oznacza, że aplikacja wymaga wspomaganą sprzętowo implementację interfejsu Vulkan. Wersja funkcji wskazuje poziom opcji funkcje sprzętowe wymagane przez aplikację. na przykład jeśli Twoja aplikacja wymaga sprzętu z Vulkan na poziomie 0. support, zadeklaruj tę funkcję:
<uses-feature
    android:name="android.hardware.vulkan.level"
    android:version="0"
    android:required="true" />
Więcej informacji o wersji funkcji znajdziesz tutaj: FEATURE_VULKAN_HARDWARE_LEVEL.
android.hardware.vulkan.version
Aplikacja używa interfejsu Vulkan. Ta funkcja oznacza, że aplikacja wymaga akceleracji sprzętowej. Implementacja interfejsu Vulkan. Wersja funkcji wskazuje minimalną wersję obsługi interfejsu Vulkan API wymaga aplikacji. Jeśli na przykład Twoja aplikacja wymaga obsługi Vulkan 1.0, zadeklaruj parametr ta funkcja:
<uses-feature
    android:name="android.hardware.vulkan.version"
    android:version="0x400003"
    android:required="true" />
Więcej informacji o wersji funkcji znajdziesz tutaj: FEATURE_VULKAN_HARDWARE_VERSION.

Funkcje sprzętu Wi-Fi

android.hardware.wifi
Aplikacja używa funkcji sieci 802.11 (Wi-Fi) urządzenia.
android.hardware.wifi.direct
Aplikacja używa funkcji sieci Wi-Fi Direct na urządzeniu.

Funkcje oprogramowania

W tej sekcji omawiamy funkcje oprogramowania obsługiwane przez najnowsze wersji platformy. Informacja, że aplikacja używa lub wymaga oprogramowania. funkcji, zadeklaruj odpowiednią wartość, zaczynając od "android.software" w atrybucie android:name. Przy każdorazowej deklaracji funkcji oprogramowania użyj oddzielnego <uses-feature> element.

Funkcje oprogramowania komunikacyjnego

android.software.sip
Aplikacja używa usług SIP. W przypadku protokołu SIP aplikacja obsługuje operacje telefonii internetowej, np. rozmowy wideo i komunikatorów.
android.software.sip.voip

Aplikacja używa usług VoIP opartych na SIP. Według za pomocą VoIP, aplikacja może obsługiwać działania telefoniczne przez internet w czasie rzeczywistym, takich jak dwukierunkowe rozmowy wideo.

Korzystając z tej funkcji, aplikacja oznacza, że używa też Funkcja android.software.sip, chyba że ta funkcja nadrzędna jest zadeklarowano za pomocą funkcji android:required="false".

android.software.webview
Aplikacja wyświetla treści z internetu.

Funkcje oprogramowania do wprowadzania niestandardowych danych

android.software.input_methods
Aplikacja używa nowej metody wprowadzania, którą deweloper definiuje w InputMethodService.

Funkcje oprogramowania do zarządzania urządzeniami

android.software.backup
Aplikacja zawiera funkcje logiczne obsługujące operację tworzenia i przywracania kopii zapasowej.
android.software.device_admin
Aplikacja używa administratorów urządzenia do egzekwowania zasad dotyczących urządzeń.
android.software.managed_users
Aplikacja obsługuje użytkowników dodatkowych i profile zarządzane.
android.software.securely_removes_users
Aplikacja może trwale usuwać użytkowników i powiązane z nimi konta i skalowalnych danych.
android.software.verified_boot
Aplikacja zawiera logikę obsługi wyników ze zweryfikowanego rozruchu urządzenia który wykrywa, czy konfiguracja urządzenia zmienia się i uruchomić ponownie.

Funkcje oprogramowania multimedialnego

android.software.midi
Aplikacja łączy się z instrumentami muzycznymi lub odtwarza dźwięk za pomocą funkcji Musical protokół MIDI (Instrument Digital Interface).
android.software.print
Aplikacja zawiera polecenia do drukowania dokumentów wyświetlanych na urządzeniu.
android.software.leanback
Aplikacja została opracowana pod kątem urządzeń z Androidem TV.
android.software.live_tv
Aplikacja transmituje programy telewizyjne na żywo.

Funkcje oprogramowania interfejsu ekranu

android.software.app_widgets
Aplikacja używa lub udostępnia widżety aplikacji i jest przeznaczona tylko dla urządzeń z ekranem głównym lub podobną lokalizacją, umieścić widżety aplikacji.
android.software.home_screen
Aplikacja zastępuje ekran główny urządzenia.
android.software.live_wallpaper
Aplikacja używa lub udostępnia tapety z animacją.

uprawnienia sugerujące wymagania dotyczące funkcji,

Niektóre stałe cechy sprzętu i oprogramowania są dostępne dla po odpowiednim interfejsie API. Z tego powodu niektóre aplikacje mogą wcześniej używać interfejsu API. mogą zadeklarować, że wymagają interfejsu API, korzystając z <uses-feature>.

Aby zapobiec przypadkowemu udostępnieniu tych aplikacji, Google Play zakłada, że określone uprawnienia związane ze sprzętem wskazują, podstawowe funkcje sprzętowe są domyślnie wymagane. Przykład: aplikacje korzystające z Bluetootha muszą żądać urządzenia BLUETOOTH w elemencie <uses-permission>.

Starsze aplikacji, Google Play zakłada, że deklaracja uprawnień oznacza, że podstawowa funkcja android.hardware.bluetooth jest wymagana przez aplikacji i konfiguruje filtrowanie na podstawie tej funkcji. Tabela 2 – listy uprawnień, które sugerują, że wymagania funkcji odpowiadają tym zadeklarowanym <uses-feature> elementów.

<uses-feature> deklaracji, w tym wszystkie zadeklarowany atrybut android:required, zawsze ma pierwszeństwo przed funkcji wynikających z uprawnień, o których mowa w tabeli 2. W przypadku każdego z tych uprawnień możesz wyłączyć filtrowanie na podstawie domniemanej funkcji, wyraźnie deklarujesz funkcję w elemencie <uses-feature> z atrybutem required ustawionym na false.

Aby na przykład: wyłącz filtrowanie na podstawie uprawnienia CAMERA, dodaj te deklaracje <uses-feature> w pliku manifestu:

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

Uwaga: jeśli aplikacja jest kierowana na Androida 5.0 (poziom interfejsu API 21) lub i używa ACCESS_COARSE_LOCATION lub Uprawnienia dla aplikacji ACCESS_FINE_LOCATION na dostęp do lokalizacji aktualizacje z sieci lub z GPS-a, musisz również zadeklaruj, że Twoja aplikacja używa android.hardware.location.network lub funkcje sprzętowe android.hardware.location.gps.

Tabela 2. Uprawnienia urządzenia, które sugerują używanie sprzętu.

Kategoria Uprawnienia Domniemane wymaganie funkcji
Bluetooth BLUETOOTH android.hardware.bluetooth

Więcej informacji znajdziesz w sekcji Specjalna obsługa funkcji Bluetooth.

BLUETOOTH_ADMIN android.hardware.bluetooth
Aparat CAMERA android.hardware.camera
android.hardware.camera.autofocus
Lokalizacja 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 (Tylko wtedy, gdy docelowy poziom interfejsu API to 20 lub niższy).

ACCESS_FINE_LOCATION

android.hardware.location

android.hardware.location.gps (Tylko wtedy, gdy docelowy poziom interfejsu API to 20 lub niższy).

mikrofon RECORD_AUDIO android.hardware.microphone
Telefonia 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
Wi-Fi ACCESS_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_MULTICAST_STATE android.hardware.wifi