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 atrybutrequired
, 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śliminSdkVersion
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"
- Zadeklarowanie wartości
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 Atrybutandroid: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>
.
minSdkVersion to ... |
targetSdkVersion to |
Wynik |
---|---|---|
<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
- Wynik: Google Play nie filtruje aplikacji z żadnego urządzenia. .
<uses-feature>
.
<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
- Wynik: Google Play wyłącza filtrowanie na podstawie Bluetootha obsługę funkcji na wszystkich urządzeniach.
android:required="false"
.
<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:
- Skompiluj i wyeksportuj aplikację jako niepodpisany pakiet APK.
Jeśli programujesz w Android Studio, skompiluj aplikację przy użyciu Gradle w ten sposób:
- Otwórz projekt i wybierz Uruchom > Edytuj konfiguracje.
- W pobliżu lewego górnego rogu okna Uruchom/debuguj kliknij znak plusa Konfiguracje.
- Wybierz Gradle.
- Wpisz „Niepodpisany plik APK” w polu Nazwa.
- Wybierz moduł w sekcji Projekt Gradle.
- Wpisz „zestaw” w Liście zadań.
- Kliknij OK, aby zakończyć nową konfigurację.
- Upewnij się, że wybrana jest konfiguracja uruchamiania niepodpisanego pliku APK. na pasku narzędzi, a następnie wybierz Uruchom > Uruchom „Niepodpisany plik APK”.
<ProjectName>/app/build/outputs/apk/
. - 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. - 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
lubandroid.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 zadeklarowanoandroid.hardware.camera
z parametremandroid: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 zawieraCAMERA
(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 zadeklarowanoandroid.hardware.camera
z parametremandroid:required="false"
Uwaga: jeśli aplikacja używa
android.hardware.camera.front
, ale bez deklaracjiandroid.hardware.camera
zandroid.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, zadeklarujandroid.hardware.camera
z parametremandroid.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 zadeklarowanoandroid.hardware.camera
z parametremandroid: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 zawieraCAMERA
, 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
orazandroid.colorCorrection.mode
zTRANSFORM_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. PomocFULL
obejmuje funkcje robienia zdjęć seryjnych, kontrola na ramkę i ręczne przetwarzanie końcowe . ZobaczINFO_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 atrybutemandroid: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 atrybutemandroid: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życiuandroid:screenOrientation
, ale nie są naprawdę potrzebne, wyłącz to wymaganie, zadeklarując orientację za pomocą elementu<uses-feature>
i uwzględniającandroid: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ą funkcjiandroid: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ą funkcjiandroid: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 pakietemandroid.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
zandroid:required="false"
Dodaj tę deklarację, jeśli aplikacja używa prawdziwego interfejsu z ekranem dotykowym, ale nie jest wymagany. Wszystkie aplikacje bez wyraźnego wymoguandroid.hardware.touchscreen
działa też na urządzeniach z atrybutemandroid.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ą funkcjiandroid: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ą metodyandroid: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ą metodyandroid: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ą funkcjiandroid: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
.
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 |
|
|
ACCESS_FINE_LOCATION |
|
|
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 |