Google Play utilizza <uses-feature>
elementi dichiarati nel file manifest dell'app per filtrare l'app in base ai dispositivi
che non soddisfano i requisiti delle funzionalità hardware e software.
Se specifichi le funzionalità richieste dalla tua applicazione, si consente a Google Play di presentare la propria applicazione solo agli utenti la cui i dispositivi soddisfano i requisiti delle funzionalità dell'applicazione, anziché presentarla a tutti gli utenti.
Per informazioni importanti su come Google Play utilizza le funzionalità come base per i filtri; consulta la sezione Google Play e filtri basati sulle funzionalità.
- sintassi:
-
<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" />
- contenuto in:
<manifest>
- description:
Dichiara una singola funzionalità hardware o software utilizzata dal un'applicazione.
Lo scopo di una dichiarazione
<uses-feature>
è informare Qualsiasi entità esterna dell'insieme di funzionalità hardware e software dell'Utente dall'applicazione. L'elemento offre un attributorequired
che consente di specificare se la tua applicazione richiede e non può funzionare senza la caratteristica dichiarata o preferisce averla, ma può funzionare anche senza.Poiché il supporto delle funzioni può variare da un dispositivo Android all'altro, il L'elemento
<uses-feature>
svolge un ruolo importante nel consentire a un dell'applicazione descrivono le funzioni delle variabili dispositivo che utilizza.L'insieme di funzionalità disponibili dichiarato dalla tua applicazione corrisponde l'insieme di costanti delle funzionalità rese disponibili dall'
PackageManager
di Android. Le costanti delle caratteristiche sono elencate nella nella sezione Riferimento alle funzionalità in questo documento.Devi specificare ogni caratteristica in un campo
<uses-feature>
separato , quindi se la tua applicazione richiede più caratteristiche, dichiara più elementi<uses-feature>
. Ad esempio, un'applicazione che richiede funzionalità Bluetooth e fotocamera nel dispositivo dichiara questi due elementi:<uses-feature android:name="android.hardware.bluetooth" android:required="true" /> <uses-feature android:name="android.hardware.camera.any" android:required="true" />
In generale, dichiara sempre
<uses-feature>
per tutte le funzionalità richiesta dall'applicazione.Gli elementi
<uses-feature>
dichiarati hanno solo scopo informativo, ovvero che il sistema Android stesso non verifichi il supporto delle funzionalità corrispondenti su sul dispositivo prima di installare un'applicazione.Tuttavia, altri servizi, come Google Play, e le applicazioni possono controllare lo stato
<uses-feature>
dichiarazioni nell'ambito della gestione o dell'interazione con la tua applicazione. Per questo motivo, è molto importante dichiarare tutti i le funzionalità utilizzate dalla tua applicazione.Per alcune caratteristiche, potrebbe esistere un attributo specifico che ti consente di definire una versione della funzionalità, come la versione di Open GL utilizzata (dichiarata con
glEsVersion
). Altre funzionalità con o senza per un dispositivo, ad esempio una fotocamera, vengono dichiarate utilizzandoname
.Sebbene l'elemento
<uses-feature>
sia attivato solo per dispositivi con livello API 4 o superiore, includi questi elementi per tutti anche seminSdkVersion
è 3 o inferiore. I dispositivi che eseguono versioni precedenti della piattaforma ignorano dell'elemento.Nota: quando dichiari una caratteristica, ricorda che devi anche richiedere le autorizzazioni appropriate. Ad esempio, devi avere richiedi
CAMERA
prima che la tua applicazione possa accedere all'API Camera. La richiesta di che concede alla tua applicazione l'accesso all'hardware appropriato software. Dichiarare le funzionalità utilizzate dalla tua applicazione aiuta a garantire compatibilità con i dispositivi.- attributi:
-
-
android:name
- Specifica una singola funzionalità hardware o software utilizzata dall'applicazione come una stringa descrittore. I valori validi degli attributi sono elencati nella sezione Caratteristiche hardware e Software funzionalità. I valori degli attributi sono sensibili alle maiuscole.
-
android:required
-
Valore booleano che indica se l'applicazione richiede la funzionalità
specificato in
android:name
.- La dichiarazione di
android:required="true"
per una caratteristica indica che l'applicazione non funziona o non progettato per funzionare, quando la funzionalità specificata non è presente dispositivo. - La dichiarazione di
android:required="false"
per una caratteristica indica che l'applicazione utilizza la funzionalità se presente su il dispositivo, ma che è progettato per funzionare senza le se necessario.
Il valore predefinito per
android:required
è"true"
. - La dichiarazione di
android:glEsVersion
- La versione OpenGL ES richiesta dall'applicazione. Più sono i 16 bit
rappresenta il numero maggiore, mentre i 16 bit più bassi rappresentano il numero minore. Per
Ad esempio, per specificare OpenGL ES versione 2.0, imposti il valore
"0x00020000" o per specificare OpenGL ES 3.2, imposta il valore su "0x00030002".
Un'applicazione specifica al massimo un
android:glEsVersion
nel file manifest. Se ne specifica più di uno, Viene utilizzatoandroid:glEsVersion
con il valore numerico più alto qualsiasi altro valore viene ignorato.Se un'applicazione non specifica un
android:glEsVersion
si presume che l'applicazione richieda solo OpenGL ES 1.0, supportata da tutti i dispositivi Android.Un'applicazione può presupporre che se una piattaforma supporta un determinato OpenGL ES supporta anche tutte le versioni OpenGL ES con valori numerici inferiori. Pertanto, per se un'applicazione richiede sia OpenGL ES 1.0 che OpenGL ES 2.0, specificare richiede OpenGL ES 2.0.
Per un'applicazione che supporta tutte le diverse versioni OpenGL ES, specificare solo la versione numericamente più bassa di OpenGL ES richiesta. it puoi verificare in fase di runtime se è disponibile un livello più elevato di OpenGL ES.
Per ulteriori informazioni sull'utilizzo di OpenGL ES, incluso come verificare la versione di OpenGL ES supportata in fase di runtime, consulta la documentazione di OpenGL ES Guida alle API.
-
- introdotto in:
- Livello API 4
- vedi anche:
Google Play e filtri basati su funzionalità
Google Play filtra le applicazioni visibili agli utenti per gli utenti possono visualizzare e scaricare solo le applicazioni compatibili con il proprio dispositivo. Uno dei modi in cui filtra le applicazioni è per funzionalità la compatibilità.
Determinare la compatibilità delle funzionalità di un'applicazione con il dispositivo mobile, Google Play confronta:
- Funzionalità richieste dall'applicazione, come dichiarato in
Elementi
<uses-feature>
nel file manifest dell'applicazione. - Funzionalità disponibili sul dispositivo, nell'hardware o nel software, come segnalato utilizzando proprietà di sistema di sola lettura.
Per confrontare accuratamente le funzionalità, Gestione pacchetti Android
fornisce un insieme condiviso di costanti delle funzionalità che sia le applicazioni che i dispositivi
per dichiarare i requisiti
di assistenza e il supporto delle funzionalità. Le costanti delle funzionalità disponibili
sono elencate nella sezione Riferimento alle funzionalità
in questo documento e nella documentazione del corso per
PackageManager
.
Quando l'utente avvia Google Play, l'applicazione esegue una query sul
gestore di pacchetti per l'elenco delle funzionalità disponibili sul dispositivo chiamando
getSystemAvailableFeatures()
. La
L'applicazione Store passa quindi l'elenco delle funzionalità a Google Play
quando stabilisci la sessione per l'utente.
Ogni volta che carichi un'applicazione su Google Play Console,
Google Play analizza il file manifest dell'applicazione. Cerca
<uses-feature>
elementi e li valuta in combinazione
con altri elementi, in alcuni casi, come <uses-sdk>
e
<uses-permission>
elementi. Dopo aver stabilito
un insieme di caratteristiche richieste dall'applicazione, archivia tale elenco internamente come
Metadati associati all'APK e all'applicazione
completamente gestita.
Quando un utente cerca o sfoglia applicazioni utilizzando Google Play un'applicazione, il servizio confronta le funzionalità richieste da ogni applicazione le funzionalità disponibili sul dispositivo dell'utente. Se tutte le applicazioni sono richieste funzioni sono presenti sul dispositivo, Google Play consente all'utente di dell'applicazione e potenzialmente scaricarla.
Se una delle funzionalità richieste non è supportata dal dispositivo, Google Play filtra l'applicazione in modo che non venga visibili all'utente o disponibili per il download.
Poiché le funzionalità che dichiari in <uses-feature>
influiscono direttamente sul modo in cui Google Play filtra la tua applicazione,
è importante capire in che modo Google Play valuta il file manifest dell'applicazione
e definisce l'insieme di caratteristiche richieste. Le sezioni seguenti forniscono ulteriori
informazioni.
Applicazione di filtri in base alle funzionalità dichiarate esplicitamente
Una caratteristica dichiarata esplicitamente è una caratteristica dichiarata dalla tua applicazione in un
Elemento <uses-feature>
. La dichiarazione relativa alla funzionalità può includere
un attributo android:required=["true" | "false"]
se sei
la compilazione in base al livello API 5 o superiore.
In questo modo puoi specificare se
richiede la funzionalità e non può funzionare correttamente senza
("true"
) o utilizza la funzionalità
se disponibile, ma è progettato per funzionare senza ("false"
).
Google Play gestisce le funzionalità dichiarate esplicitamente in questo modo:
- Se una funzionalità viene dichiarata esplicitamente come obbligatoria, come illustrato di seguito
Ad esempio, Google Play aggiunge
la funzionalità all'elenco delle funzionalità richieste per l'applicazione. Poi
filtra l'applicazione per impedire l'accesso agli utenti di dispositivi che non offrono tale funzionalità.
<uses-feature android:name="android.hardware.camera.any" android:required="true" />
- Se una funzionalità viene dichiarata esplicitamente come non obbligatoria, come mostrato in
nell'esempio seguente, Google
Google Play non aggiunge la funzionalità all'elenco di funzionalità richieste. Per
Per questo motivo, una funzionalità non obbligatoria dichiarata in modo esplicito non viene mai presa in considerazione quando
filtrando l'applicazione. Anche se il dispositivo non fornisce la dichiarazione
funzione, Google Play considera comunque l'applicazione compatibile con
dispositivo e la mostra all'utente, a meno che non siano applicabili altre regole di filtro.
<uses-feature android:name="android.hardware.camera" android:required="false" />
- Se una funzionalità viene dichiarata esplicitamente, ma senza un
android:required
, Google Play presuppone che la funzionalità e configurare i filtri al suo interno.
In generale, se la tua applicazione è progettata per essere eseguita su Android 1.6 e versioni precedenti,
l'attributo android:required
non è disponibile in
API e Google Play presuppone che tutti
Le dichiarazioni <uses-feature>
sono obbligatorie.
Nota:dichiarando una funzionalità in modo esplicito e
incluso un attributo android:required="false"
, puoi
disattivare in modo efficace tutti i filtri su Google Play per la funzionalità specificata.
Filtra in base a caratteristiche implicite
Una funzionalità implicita è una funzionalità che un'applicazione richiede per
funzionare correttamente, ma che non è dichiarato in
<uses-feature>
nel file manifest. Rigorosamente
è meglio che ogni applicazione dichiari sempre tutte le caratteristiche che
utilizza o richiede e l'assenza di una dichiarazione per una funzionalità utilizzata
l'applicazione può essere considerata un errore.
Tuttavia, a tutela degli utenti e sviluppatori, Google Play cerca funzionalità implicite in ogni applicazione imposta i filtri per queste funzionalità, come avviene per le dichiarate.
Un'applicazione potrebbe richiedere una funzionalità, ma non dichiararla per motivi quali:
- L'applicazione è stata compilata in base a una versione precedente della libreria Android
(Android 1.5 o versioni precedenti), per cui l'elemento
<uses-feature>
non è disponibili. - Lo sviluppatore presume erroneamente che la funzionalità sia presente su tutti dispositivi e non è necessaria una dichiarazione.
- Lo sviluppatore omette per errore la dichiarazione della funzionalità.
- Lo sviluppatore dichiara esplicitamente la funzionalità, ma la dichiarazione non lo è
valida. Ad esempio, un errore ortografico nella
<uses-feature>
il nome dell'elemento o un valore di stringa non riconosciuto per il L'attributoandroid:name
rende la dichiarazione della funzionalità non valida.
Per tenere conto di questi casi, Google Play tenta di trovare
i requisiti di funzionalità impliciti dell'applicazione esaminando altri elementi
dichiarate nel file manifest, in particolare
<uses-permission>
elementi.
Se un'applicazione richiede autorizzazioni relative all'hardware, Google Play
presuppone che l'applicazione utilizzi le funzionalità hardware sottostanti
pertanto richiede quelle caratteristiche, anche se non sono
dichiarazioni <uses-feature>
corrispondenti. Per tali
autorizzazioni, Google Play aggiunge le funzionalità hardware di base
memorizza i metadati per l'applicazione e imposta i filtri corrispondenti.
Ad esempio, se un'applicazione richiede l'autorizzazione CAMERA
,
Google Play presuppone che l'applicazione richieda una fotocamera posteriore (rivolta verso il mondo)
se l'app non dichiara un elemento <uses-feature>
per
android.hardware.camera
. Di conseguenza, Google Play filtra i dispositivi
senza una fotocamera posteriore.
Se non vuoi che Google Play filtri in base a una specifica implicita
dichiara esplicitamente la caratteristica in un <uses-feature>
e includi l'attributo android:required="false"
. Per
ad esempio per disattivare i filtri impliciti nell'autorizzazione CAMERA
,
dichiarano le seguenti caratteristiche:
<uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
Attenzione:le autorizzazioni che richiedi in
Gli elementi <uses-permission>
possono influire direttamente sul modo in cui Google
Google Play filtra la tua applicazione. La
Nella sezione Autorizzazioni che implicano requisiti delle funzionalità sono elencate le
un insieme completo di autorizzazioni che implicano requisiti delle funzionalità e quindi attivano
dei filtri.
Gestione speciale per la funzione Bluetooth
Google Play applica regole leggermente diverse da quelle descritte nell'esempio precedente quando determinare il filtro per il Bluetooth.
Se un'applicazione dichiara un'autorizzazione Bluetooth in una
<uses-permission>
elemento ma non dichiara esplicitamente
la funzionalità Bluetooth in un elemento <uses-feature>
, Google
Google Play controlla la versione o le versioni della piattaforma Android su cui è installata l'applicazione
progettato per l'esecuzione, come specificato nell'elemento <uses-sdk>
.
Come mostrato nella tabella seguente, Google Play attiva i filtri per
Funzionalità Bluetooth solo se l'applicazione dichiara la sua
Android 2.0 (livello API 5) o versioni successive. Tuttavia, tieni presente che Google
Google Play applica le normali regole di filtro quando l'applicazione
dichiara la funzionalità Bluetooth in un elemento <uses-feature>
.
Tabella 1. In che modo Google Play determina
Requisito della funzionalità Bluetooth per un'applicazione che richiede una connessione Bluetooth
ma non dichiara la funzionalità Bluetooth in un
Elemento <uses-feature>
.
minSdkVersion è ... |
targetSdkVersion è |
Risultato |
---|---|---|
<uses-sdk> non dichiarato |
<= 4 | Google Play non filtra l'applicazione da nessun dispositivo
in base al supporto segnalato per android.hardware.bluetooth
funzionalità. |
<= 4 | >= 5 | Google Play filtra l'applicazione da qualsiasi dispositivo che non supporta la funzionalità android.hardware.bluetooth (tra cui
release precedenti). |
>= 5 | >= 5 |
I seguenti esempi illustrano i diversi effetti dei filtri in base a come Google Play gestisce la funzionalità Bluetooth.
-
Nel primo esempio, un'applicazione progettata per essere eseguita su livelli API precedenti
dichiara un'autorizzazione Bluetooth ma non dichiara la funzionalità Bluetooth in un
Elemento
- Risultato: Google Play non filtra l'applicazione da nessun dispositivo. di Gemini Advanced.
<uses-feature>
.
<manifest ...> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="3" /> ... </manifest>
-
Nel secondo esempio, la stessa applicazione dichiara anche
Livello API "5".
- Risultato: ora Google Play presuppone che la funzionalità sia obbligatoria e filtra l'applicazione da tutti i dispositivi che non segnalano il supporto Bluetooth, inclusi i dispositivi con versioni precedenti della piattaforma. di Gemini Advanced.
<manifest ...> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" /> ... </manifest>
-
In questo caso, la stessa applicazione ora dichiara specificamente la funzionalità Bluetooth.
- Risultato: identico all'esempio precedente, con l'applicazione del filtro. di Gemini Advanced.
<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>
-
Infine, nel caso seguente, la stessa applicazione aggiunge
- Risultato: Google Play disattiva i filtri basati sul Bluetooth delle funzionalità per tutti i dispositivi.
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>
Testa le funzionalità richieste dalla tua applicazione
Puoi utilizzare lo strumento aapt2
, incluso nell'SDK Android, per
stabilire in che modo Google Play filtra la tua applicazione in base ai
funzioni e autorizzazioni. Per farlo, esegui aapt2
con il comando dump
badging
. Questo fa sì che aapt2
analizzi
del file manifest dell'applicazione e applicare le stesse regole utilizzate da Google Play
determinare le funzionalità richieste dalla tua applicazione.
Per utilizzare lo strumento:
- Crea ed esporta la tua applicazione come APK non firmato.
Se stai sviluppando in Android Studio, crea la tua applicazione con Gradle, nel seguente modo:
- Apri il progetto e seleziona Esegui > Modifica configurazioni.
- Seleziona il segno più accanto all'angolo in alto a sinistra della sezione Esegui/Debug Configurazioni.
- Seleziona Gradle.
- Inserisci "APK non firmato" in Nome.
- Scegli il modulo dalla sezione Progetto Gradle.
- Inserisci "assembla" in Attività.
- Seleziona OK per completare la nuova configurazione.
- Assicurati che la configurazione di esecuzione dell'APK non firmato sia selezionata nella barra degli strumenti e seleziona Esegui > Esegui "APK non firmato".
<ProjectName>/app/build/outputs/apk/
. - Individua lo strumento
aapt2
, se non si trova già nel tuo PATH. Se utilizzi SDK Tools r8 o versioni successive, puoi trovareaapt2
nella<SDK>/build-tools/<tools version number>
.Nota: devi utilizzare la versione di
aapt2
fornito per il componente Build-Tools più recente disponibile. Se Se non hai l'ultimo componente Build-Tools, scaricalo utilizzando Android SDK Manager. - Esegui
aapt2
utilizzando questa sintassi:
$ aapt2 dump badging <path_to_exported_.apk>
Ecco un esempio dell'output comando per il secondo esempio Bluetooth mostrato in precedenza:
$ ./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'
Informazioni sulle funzionalità
Le sezioni seguenti forniscono informazioni di riferimento sulle funzionalità hardware. funzionalità software e insiemi di autorizzazioni che implicano funzionalità specifiche i tuoi requisiti.
Funzionalità hardware
Questa sezione illustra le funzionalità hardware supportate dai
completamente gestita. Per indicare che la tua app utilizza o richiede un hardware.
feature, dichiarare il valore corrispondente, iniziando con
"android.hardware"
, in un attributo android:name
.
Ogni volta che dichiari una funzionalità hardware, utilizza un oggetto
Elemento <uses-feature>
.
Funzionalità hardware audio
-
android.hardware.audio.low_latency
- L'app utilizza la pipeline audio a bassa latenza del dispositivo, che riduce i tempi di attesa ritardi durante l'elaborazione dell'input o dell'output audio.
-
android.hardware.audio.output
- L'app trasmette i suoni tramite gli altoparlanti, il jack audio e il Bluetooth del dispositivo funzionalità di flusso di dati o un meccanismo simile.
-
android.hardware.audio.pro
- L'app utilizza le funzionalità e le prestazioni audio di fascia alta del dispositivo le funzionalità di machine learning.
-
android.hardware.microphone
- L'app registra l'audio utilizzando il microfono del dispositivo.
Funzionalità hardware Bluetooth
-
android.hardware.bluetooth
- L'app utilizza le funzionalità Bluetooth del dispositivo, solitamente per comunicare con altri dispositivi dotati di Bluetooth.
-
android.hardware.bluetooth_le
- L'app utilizza le funzionalità radio Bluetooth Low Energy del dispositivo.
Funzionalità hardware della fotocamera
Nota: per evitare di filtrare inutilmente l'app
Google Play, aggiungi android:required="false"
a qualsiasi funzionalità della fotocamera
senza che la tua app possa funzionare. In caso contrario, Google Play presuppone che la funzionalità sia
necessaria e impedisce ai dispositivi che non supportano la funzione di accedere ai tuoi
dell'app.
Supporto per schermi di grandi dimensioni
Alcuni dispositivi con schermi grandi non supportano tutte le funzionalità della fotocamera. Chromebook in genere non dispongono di fotocamere posteriori, messa a fuoco automatica o flash. Ma I Chromebook sono dotati di fotocamere anteriori (rivolte all'utente) e spesso sono collegati a fotocamere esterne.
Per fornire assistenza di base per la fotocamera e rendere la tua app disponibile a quante più persone dispositivi possibili, aggiungi alla tua app le seguenti impostazioni delle funzionalità della fotocamera manifest:
<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" />
Regola le impostazioni delle funzionalità in base ai casi d'uso della tua app. Ma per rendere
la tua app disponibile per il maggior numero di dispositivi, includi sempre
Attributo required
per specificare esplicitamente se una caratteristica è una
indispensabili.
Elenco delle funzionalità
-
android.hardware.camera.any
-
L'app utilizza una delle fotocamere del dispositivo o una videocamera esterna collegata a del dispositivo. Usa questa funzionalità anziché
android.hardware.camera
oppureandroid.hardware.camera.front
se l'app non richiede che la videocamera sia rivolta verso il retro (mondo o anteriore) rispettivamente.L'autorizzazione
CAMERA
implica che la tua app usa ancheandroid.hardware.camera
. È necessaria una fotocamera posteriore a meno cheandroid.hardware.camera
non venga dichiarato conandroid:required="false"
. -
android.hardware.camera
-
L'app utilizza la fotocamera posteriore (rivolto verso il mondo) posteriore del dispositivo.
Attenzione:i dispositivi come i Chromebook che hanno solo una fotocamera anteriore (rivolta all'utente) non supporta questa funzionalità. Utilizza le funzionalità di
android.hardware.camera.any
se la tua app supporta qualsiasi fotocamera, indipendentemente dalla direzione in cui è rivolta la fotocamera.Nota: il
CAMERA
: di autorizzazione implica che è necessaria una fotocamera posteriore. Per garantire filtro appropriato su Google Play quando il file manifest dell'app include ilCAMERA
, specifica esplicitamente che la tua app utilizza la funzionalitàcamera
e indica se è obbligatoria, ad esempio:
<uses-feature android:name="android.hardware.camera" android:required="false" />
-
android.hardware.camera.front
-
L'app utilizza la fotocamera anteriore del dispositivo (rivolta all'utente).
L'autorizzazione
CAMERA
implica che la tua app usa ancheandroid.hardware.camera
. È necessaria una fotocamera posteriore a meno cheandroid.hardware.camera
non venga dichiarato conandroid:required="false"
.Attenzione: se l'app utilizza
android.hardware.camera.front
ma non dichiara esplicitamenteandroid.hardware.camera
conandroid.required="false"
, dispositivi che non hanno il retro (come i Chromebook) vengono filtrate in base a Google Play. Se la tua app supporta dispositivi dotati solo di fotocamere anteriori, dichiaraandroid.hardware.camera
conandroid.required="false"
per evitare filtri non necessari. -
android.hardware.camera.external
-
L'app comunica con una videocamera esterna a cui l'utente collega dispositivo. Questa funzionalità non garantisce la disponibilità di una videocamera esterna per l'utilizzo dell'app.
L'autorizzazione
CAMERA
implica che la tua app usa ancheandroid.hardware.camera
. È necessaria una fotocamera posteriore a meno cheandroid.hardware.camera
non venga dichiarato conandroid:required="false"
. -
android.hardware.camera.autofocus
-
L'app utilizza la funzionalità di messa a fuoco automatica supportata dalla fotocamera del dispositivo.
Nota: il
CAMERA
: implica che la messa a fuoco automatica è una funzionalità obbligatoria. Per garantire l'applicazione filtrando su Google Play quando il file manifest dell'app includeCAMERA
, specifica esplicitamente che la tua app utilizza funzione di messa a fuoco automatica e indicare se è necessaria o meno, ad esempio:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
. -
android.hardware.camera.flash
-
L'app utilizza la funzionalità del flash supportata dalla fotocamera del dispositivo.
-
android.hardware.camera.capability.manual_post_processing
-
L'app usa la funzionalità
MANUAL_POST_PROCESSING
supportata da la fotocamera del dispositivo.Questa funzionalità consente all'app di ignorare il bilanciamento automatico del bianco della videocamera funzionalità. Usa
android.colorCorrection.transform
,android.colorCorrection.gains
e unandroid.colorCorrection.mode
diTRANSFORM_MATRIX
. -
android.hardware.camera.capability.manual_sensor
-
L'app utilizza la funzionalità
MANUAL_SENSOR
supportata dalla fotocamera del dispositivo.Questa funzionalità implica il supporto del blocco automatico dell'esposizione (
android.control.aeLock
), che consente l'esposizione della fotocamera tempo e sensibilità per rimanere fisse a valori specifici. -
android.hardware.camera.capability.raw
-
L'app utilizza la funzionalità
RAW
supportata dalla fotocamera.Questa funzionalità implica che il dispositivo può salvare file DNG (non elaborati). La della videocamera del dispositivo fornisce i metadati relativi a DNG necessari per il tuo per elaborare direttamente le immagini RAW.
-
android.hardware.camera.level.full
-
L'app utilizza il livello
FULL
di assistenza per l'acquisizione di immagini fornita da almeno una videocamera del dispositivo. L'assistenza diFULL
include funzionalità di acquisizione a raffica, controllo per frame e post-elaborazione manuale controllo. ConsultaINFO_SUPPORTED_HARDWARE_LEVEL_FULL
.
Funzionalità hardware UI dispositivo
-
android.hardware.type.automotive
-
L'app è progettata per mostrare la sua UI su una serie di schermate all'interno di un veicolo. L'utente interagisce con l'app utilizzando pulsanti rigidi, touch, pulsanti rotanti e interfacce simili a un mouse. In genere gli schermi del veicolo compare nella console centrale o sul quadro strumenti di un veicolo. Questi gli schermi di solito hanno dimensioni e risoluzione limitate.
Nota : poiché l'utente guida mentre si usa questo tipo di UI dell'app, l'app deve ridurre al minimo il di distrazione.
-
android.hardware.type.television
-
(Deprecato; utilizza
android.software.leanback
.L'app è progettata per mostrare la relativa UI su un televisore. Questa funzionalità definisce "televisione" come una tipica esperienza televisiva in salotto: l'app che mostra su uno schermo di casa, l'utente seduto lontano e la forma dominante l'input è qualcosa come un D-pad, invece che un mouse, un puntatore o un dispositivo touch.
-
android.hardware.type.watch
- L'app è progettata per mostrare la relativa UI sull'orologio. Sul corpo viene indossato uno smartwatch ad esempio al polso. L'utente è molto vicino al dispositivo a interagire con quest'ultima.
-
android.hardware.type.pc
-
L'app è progettata per mostrare la sua UI sui Chromebook. Questa funzionalità disattiva l'emulazione dell'input per mouse e touchpad, in quanto i Chromebook utilizzano mouse e dell'hardware del touchpad. Consulta Mouse di testo.
Nota: imposta
required="false"
per questa opzione element; altrimenti il Google Play Store rende la tua app non disponibile per i dispositivi diversi dai Chromebook.
Funzionalità hardware per le impronte
-
android.hardware.fingerprint
- L'app legge le impronte utilizzando l'hardware biometrico del dispositivo.
Funzionalità hardware del gamepad
-
android.hardware.gamepad
- L'app acquisisce l'input del controller di gioco, dal dispositivo stesso o da un gamepad collegato.
Caratteristiche hardware a infrarossi
-
android.hardware.consumerir
- L'app utilizza le funzionalità a infrarossi (IR) del dispositivo, in genere per comunicare con altri dispositivi IR di consumo.
Funzionalità hardware per la posizione
-
android.hardware.location
- L'app usa una o più funzionalità del dispositivo per determinare la posizione. come posizione GPS, posizione di rete o posizione di celle.
-
android.hardware.location.gps
-
L'app utilizza le coordinate di posizione esatta ottenute da un Ricevitore GPS (sistema di posizionamento) sul dispositivo.
Utilizzando questa funzione, un'app implica che utilizza anche
android.hardware.location
funzionalità, a meno che questo padre viene dichiarata con l'attributoandroid:required="false"
. -
android.hardware.location.network
-
L'app utilizza coordinate di posizione approssimativa ottenute da un sistema basato su rete sistema di geolocalizzazione supportato dal dispositivo.
Utilizzando questa funzione, un'app implica che utilizza anche
android.hardware.location
funzionalità, a meno che questo padre viene dichiarata con l'attributoandroid:required="false"
.
Funzionalità hardware NFC
-
android.hardware.nfc
- L'app utilizza le funzioni radio Near Field Communication (NFC) del dispositivo.
-
android.hardware.nfc.hce
-
L'app utilizza l'emulazione della carta NFC che è ospitata sul dispositivo.
Funzionalità hardware OpenGL ES
-
android.hardware.opengles.aep
- L'app utilizza il pacchetto di estensioni Android OpenGL ES installato sul dispositivo.
Funzionalità hardware del sensore
-
android.hardware.sensor.accelerometer
- L'app utilizza le letture dei movimenti dell'accelerometro del dispositivo per rilevare all'orientamento corrente del dispositivo. Ad esempio, un'app potrebbe usare letture dell'accelerometro per stabilire quando passare dalla modalità verticale a quella verticale e viceversa orientamenti orizzontali.
-
android.hardware.sensor.ambient_temperature
- L'app utilizza il sensore di temperatura ambiente (ambiente) del dispositivo. Per Ad esempio, un'app meteo può segnalare la temperatura interna o esterna.
-
android.hardware.sensor.barometer
- L'app utilizza il barometro del dispositivo. Ad esempio, un'app meteo potrebbe segnala la pressione atmosferica.
-
android.hardware.sensor.compass
- L'app utilizza il magnetometro (bussola) del dispositivo. Ad esempio, un menu di navigazione potrebbe mostrare la direzione corrente dell'utente.
-
android.hardware.sensor.gyroscope
- L'app utilizza il giroscopio del dispositivo per rilevare la rotazione e la rotazione, creando un sistema di orientamento a sei assi. Grazie a questo sensore, un'app può rilevare più in modo fluido per passare dalla posizione verticale a quella orizzontale e viceversa orientamenti.
-
android.hardware.sensor.hifi_sensors
- L'app utilizza i sensori ad alta fedeltà (Hi-Fi) del dispositivo. Ad esempio, un di gioco potrebbe rilevare i movimenti dell'utente ad alta precisione.
-
android.hardware.sensor.heartrate
- L'app utilizza il monitoraggio del battito cardiaco del dispositivo. Ad esempio, un'app per l'attività fisica potrebbe indicare tendenze del battito cardiaco di un utente nel tempo.
-
android.hardware.sensor.heartrate.ecg
- L'app utilizza il sensore del battito cardiaco per l'elettrocardiogramma (ECG) del dispositivo. Per Ad esempio, un'app per l'attività fisica potrebbe segnalare informazioni più dettagliate su un la frequenza cardiaca dell'utente.
-
android.hardware.sensor.light
- L'app utilizza il sensore di luce del dispositivo. Ad esempio, un'app potrebbe mostrare una delle due combinazioni di colori basate sull'illuminazione ambientale le condizioni di traffico.
-
android.hardware.sensor.proximity
- L'app utilizza il sensore di prossimità del dispositivo. Ad esempio, un'app di telefonia potrebbe disattivare lo schermo del dispositivo quando l'app rileva che l'utente sta tenendo il dispositivo vicino al corpo.
-
android.hardware.sensor.relative_humidity
- L'app utilizza il sensore di umidità relativa del dispositivo. Ad esempio, un meteo L'app potrebbe usare l'umidità per calcolare e registrare il punto di rugiada attuale.
-
android.hardware.sensor.stepcounter
- L'app utilizza il contapassi del dispositivo. Ad esempio, un'app per l'attività fisica potrebbe Indica il numero di passi che un utente deve eseguire per raggiungere il proprio numero di passi giornaliero conteggio obiettivo.
-
android.hardware.sensor.stepdetector
- L'app utilizza il rilevatore di passi del dispositivo. Ad esempio, un'app per l'attività fisica potrebbe utilizza l'intervallo di tempo tra i passi per dedurre il tipo di allenamento che il dell'utente.
Funzionalità hardware dello schermo
-
android.hardware.screen.landscape
-
android.hardware.screen.portrait
-
L'app richiede che il dispositivo utilizzi l'orientamento verticale o orizzontale. Se l'app supporta entrambi gli orientamenti, non è necessario dichiarare ciascuna funzionalità.
Ad esempio, se l'app richiede l'orientamento verticale, dichiara la seguente funzionalità in modo che solo i dispositivi che supportano l'orientamento verticale, sempre o per scelta dell'utente, consente di eseguire l'applicazione:
<uses-feature android:name="android.hardware.screen.portrait" />
Per impostazione predefinita, entrambi gli orientamenti non sono necessari, pertanto l'app può installa su dispositivi che supportano uno o entrambi gli orientamenti. Tuttavia, se qualsiasi attività richiede che venga eseguita in un orientamento specifico, utilizzando l'attributo
android:screenOrientation
, questa dichiarazione implica che la tua app richieda questo orientamento.Ad esempio, se dichiari
android:screenOrientation
con"landscape"
,"reverseLandscape"
o"sensorLandscape"
, la tua app sarà Disponibile solo sui dispositivi che supportano l'orientamento orizzontale.Come best practice, dichiara il tuo requisito per questo orientamento usando un elemento
<uses-feature>
. Se dichiari un orientamento per la tua attività che utilizzaandroid:screenOrientation
ma non di cui hai bisogno, puoi disattiva il requisito dichiarando l'orientamento con un elemento<uses-feature>
e includiandroid:required="false"
.Per la compatibilità con le versioni precedenti, qualsiasi dispositivo con Android 3.1 (livello API 12) o inferiore supporta sia l'orientamento orizzontale che verticale.
Funzionalità hardware per la telefonia
-
android.hardware.telephony
- L'app utilizza le funzioni di telefonia del dispositivo, ad esempio la radio telefonia con servizi di comunicazione dei dati.
-
android.hardware.telephony.cdma
-
L'app utilizza la radio di telefonia CDMA (Code Division Multiple Access) di un sistema operativo completo.
Utilizzando questa funzione, un'app implica che utilizza anche
android.hardware.telephony
funzionalità, a meno che questo padre viene dichiarata conandroid:required="false"
. -
android.hardware.telephony.gsm
-
L'app utilizza il sistema globale di telefonia GSM (Global System for Mobile Communications) di un sistema radiofonico.
Utilizzando questa funzione, un'app implica che utilizza anche
android.hardware.telephony
funzionalità, a meno che questo padre viene dichiarata conandroid:required="false"
.
Funzionalità hardware del touchscreen
-
android.hardware.faketouch
-
L'app utilizza eventi di interazione tocco di base, ad esempio tocco e trascinamento.
Se dichiarata come obbligatoria, questa funzionalità indica che l'app è compatibile con i dispositivi soltanto se hanno un "tocco falso" emulato touchscreen o dispone di un touchscreen reale.
Un dispositivo che offre una falsa interfaccia touch fornisce un sistema di input dell'utente che emula un sottoinsieme delle funzionalità di un touchscreen. Ad esempio, un il mouse o il telecomando potrebbe attivare un cursore sullo schermo.
Se la tua app richiede un'interazione di base punta e clic e non funziona con un solo controller D-pad, dichiara questa funzionalità. Poiché questo è il livello minimo di interazione tocco, puoi anche usare un'app che dichiara questa funzionalità sui dispositivi che offrono un tocco più complesso interfacce.
Le app richiedono Funzionalità
android.hardware.faketouch
per impostazione predefinita. Se vuoi l'app sia limitata ai dispositivi dotati del solo touchscreen, devi dichiara esplicitamente che il touchscreen è necessario come segue:<uses-feature android:name="android.hardware.touchscreen" android:required="true" />
Tutte le app che non richiedono esplicitamente
android.hardware.touchscreen
, come mostrato nell'esempio seguente, funziona sui dispositivi conandroid.hardware.faketouch
.<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
-
android.hardware.faketouch.multitouch.distinct
-
L'app monitora due o più "dita" distinte su una falsa interfaccia touch. Questo è un soprainsieme di
android.hardware.faketouch
funzionalità. Se dichiarata come obbligatoria, questa funzionalità indica che l'app è compatibile con un dispositivo solo se tale dispositivo emula diverse rilevamento di due o più dita o dispone di un touch screen vero e proprio.A differenza del diverso multi-touch definito da
android.hardware.touchscreen.multitouch.distinct
, i dispositivi di input che supporta multi-touch distinto con un'interfaccia touch falsa, non supportano tutti gesti con due dita, perché l'input viene trasformato in movimento del cursore sullo schermo. In altre parole, i gesti con un dito su un dispositivo di questo tipo spostano un il cursore, gli scorrimenti con due dita causano eventi di tocco con un dito e Altri gesti con due dita attivano il tocco corrispondente con due dita. eventi.Un dispositivo che fornisce un trackpad touch con due dita per il movimento del cursore possono supportare questa funzionalità.
-
android.hardware.faketouch.multitouch.jazzhand
-
L'app monitora cinque o più "dita" distinte su una falsa interfaccia touch. Questo è un soprainsieme di
android.hardware.faketouch
funzionalità. Se dichiarata come obbligatoria, questa funzionalità indica che l'app è compatibile con un dispositivo solo se tale dispositivo emula diverse rilevamento di cinque o più dita o dispone di un vero touchscreen.A differenza del diverso multi-touch definito da
android.hardware.touchscreen.multitouch.jazzhand
, i dispositivi di input che supporta il multitouch jazzhand con un'interfaccia touch falsa, non tutti gesti con cinque dita, perché l'input viene trasformato in movimento del cursore sullo schermo. In altre parole, i gesti con un dito su un dispositivo di questo tipo spostano un il cursore, i gesti con più dita causano eventi di tocco con un dito e altri gesti con più dita attivano il corrispondente eventi touch.Un dispositivo che fornisce un trackpad touch con cinque dita per il movimento del cursore possono supportare questa funzionalità.
-
android.hardware.touchscreen
-
L'app usa le funzionalità touchscreen del dispositivo per i gesti che vengono più interattivo degli eventi touch di base, come un'avventura. Si tratta di un sovrainsieme della funzionalità
android.hardware.faketouch
.Per impostazione predefinita, tutte le app richiedono questa funzione e pertanto non sono disponibile per i dispositivi che forniscono soltanto un "tocco falso" emulato a riga di comando. Puoi rendere disponibile la tua app sui dispositivi che forniscono una falsa interfaccia touch o anche su dispositivi che offrono un controller D-pad, dichiarando esplicitamente che il touchscreen è non è necessario utilizzare
android.hardware.touchscreen
conandroid:required="false"
. Aggiungi questa dichiarazione se l'app utilizza, ma non richiede, un'interfaccia touchscreen reale. Tutti app che non richiedono esplicitamenteandroid.hardware.touchscreen
funziona anche sui dispositivi conandroid.hardware.faketouch
.Se la tua app richiede di fatto un'interfaccia touch, ad esempio per eseguire prestazioni gesti tattili come battiti, quindi non è necessario dichiarare alcun tocco dell'interfaccia utente, perché sono obbligatorie per impostazione predefinita. Tuttavia, se dichiari esplicitamente tutte le funzionalità usate dalla tua app.
Se sono necessarie interazioni di tocco più complesse, ad esempio con più dita gesti, dichiara che la tua app usa un touchscreen avanzato le funzionalità di machine learning.
-
android.hardware.touchscreen.multitouch
-
L'app utilizza le funzionalità multi-touch di base a due punti del dispositivo, come come per i gesti di pizzicatura, ma l'app non ha bisogno di tenere traccia dei tocchi in modo indipendente. Si tratta di un sovrainsieme Funzionalità
android.hardware.touchscreen
.Utilizzando questa funzione, un'app implica che utilizza anche
android.hardware.touchscreen
funzionalità, a meno che questo padre viene dichiarata conandroid:required="false"
. -
android.hardware.touchscreen.multitouch.distinct
-
L'app utilizza le funzionalità multi-touch avanzate del dispositivo per il monitoraggio due o più punti in modo indipendente. Questa funzionalità è un sovrainsieme del Funzionalità
android.hardware.touchscreen.multitouch
.Utilizzando questa funzione, un'app implica che utilizza anche
android.hardware.touchscreen.multitouch
funzionalità, a meno che questa la funzionalità principale viene dichiarata conandroid:required="false"
. -
android.hardware.touchscreen.multitouch.jazzhand
-
L'app utilizza le funzionalità multi-touch avanzate del dispositivo per il monitoraggio cinque o più punti in modo indipendente. Questa funzionalità è un sovrainsieme del Funzionalità
android.hardware.touchscreen.multitouch
.Utilizzando questa funzione, un'app implica che utilizza anche
android.hardware.touchscreen.multitouch
funzionalità, a meno che questa la funzionalità principale viene dichiarata conandroid:required="false"
.
Funzionalità hardware USB
-
android.hardware.usb.accessory
- L'app si comporta come un dispositivo USB e si connette agli host USB.
-
android.hardware.usb.host
- L'app utilizza gli accessori USB collegati al dispositivo. La il dispositivo funge da host USB.
Funzionalità dell'hardware Vulkan
-
android.hardware.vulkan.compute
-
L'app usa le funzionalità di computing di Vulkan. Questa funzionalità indica che l'app richiede l'accelerazione hardware
Implementazione di Vulkan. La versione della funzionalità indica il livello di
le funzionalità di computing richieste dall'app oltre ai requisiti di Vulkan 1.0. Ad esempio, se la tua app
richiede il supporto del livello 0 di computing Vulkan, dichiara la seguente funzionalità:
<uses-feature android:name="android.hardware.vulkan.compute" android:version="0" android:required="true" />
Per ulteriori dettagli sulla versione della funzionalità, vediFEATURE_VULKAN_HARDWARE_COMPUTE
. -
android.hardware.vulkan.level
-
L'app utilizza funzionalità a livello di Vulkan. Questa funzionalità indica che l'app richiede
l'implementazione di Vulkan con accelerazione hardware. La versione della funzionalità indica il livello di
le funzionalità hardware richieste dall'app. Ad esempio, se la tua app richiede hardware Vulkan di livello 0
di Fitbit, dichiara la seguente funzionalità:
<uses-feature android:name="android.hardware.vulkan.level" android:version="0" android:required="true" />
Per ulteriori informazioni sulla versione della funzionalità, vediFEATURE_VULKAN_HARDWARE_LEVEL
. -
android.hardware.vulkan.version
-
L'app utilizza Vulkan. Questa funzionalità indica che l'app richiede l'accelerazione hardware
Implementazione di Vulkan. La versione della funzionalità indica la versione minima del supporto dell'API Vulkan
richieste dall'app. Ad esempio, se la tua app richiede il supporto Vulkan 1.0, dichiara
la seguente funzionalità:
<uses-feature android:name="android.hardware.vulkan.version" android:version="0x400003" android:required="true" />
Per ulteriori dettagli sulla versione della funzionalità, vediFEATURE_VULKAN_HARDWARE_VERSION
.
Funzionalità hardware Wi-Fi
-
android.hardware.wifi
- L'app utilizza le funzionalità di rete 802.11 (Wi-Fi) del dispositivo.
-
android.hardware.wifi.direct
- L'app usa le funzionalità di rete Wi-Fi Direct del dispositivo.
Funzionalità software
Questa sezione illustra le funzionalità software supportate dai
completamente gestita. Per indicare che la tua app utilizza o richiede un software
feature, dichiarare il valore corrispondente, iniziando con
"android.software"
, in un attributo android:name
.
Ogni volta che dichiari una funzionalità software, utilizza un oggetto
Elemento <uses-feature>
.
Funzionalità del software di comunicazione
-
android.software.sip
- L'app utilizza i servizi SIP (Session Initiation Protocol). Utilizzando SIP, può supportare le operazioni di telefonia via internet, come le videoconferenze e messaggistica immediata.
-
android.software.sip.voip
-
L'app utilizza servizi Voice Over Internet Protocol (VoIP) basati su SIP. Di utilizzando il VoIP, l'app può supportare operazioni di telefonia Internet in tempo reale, ad esempio le videoconferenze bidirezionali.
Utilizzando questa funzione, un'app implica che utilizza anche
android.software.sip
funzionalità, a meno che questa funzionalità principale non sia dichiarato conandroid:required="false"
. -
android.software.webview
- L'app mostra contenuti di internet.
Caratteristiche software di input personalizzate
-
android.software.input_methods
-
L'app utilizza un nuovo metodo di inserimento, che lo sviluppatore definisce in un elemento
InputMethodService
.
Funzionalità del software di gestione dei dispositivi
-
android.software.backup
- L'app include una logica per gestire un'operazione di backup e ripristino.
-
android.software.device_admin
- L'app si avvale di amministratori dei dispositivi per applicare i criteri relativi ai dispositivi.
-
android.software.managed_users
- L'app supporta utenti secondari e profili gestiti.
-
android.software.securely_removes_users
- L'app può rimuovere definitivamente gli utenti e i relativi utenti e i dati di Google Cloud.
-
android.software.verified_boot
- L'app include una logica per gestire i risultati dell'avvio verificato del dispositivo. che rileva se la configurazione del dispositivo cambia durante un riavvia l'operazione.
Funzionalità del software multimediale
-
android.software.midi
- L'app si connette a strumenti musicali o emette il suono utilizzando l'app protocollo MIDI (Instrument Digital Interface).
-
android.software.print
- L'app include comandi per la stampa dei documenti visualizzati sul dispositivo.
-
android.software.leanback
- L'app è progettata per essere eseguita su dispositivi Android TV.
-
android.software.live_tv
- L'app trasmette in streaming programmi televisivi in diretta.
Funzionalità software di interfaccia schermo
-
android.software.app_widgets
- L'app utilizza o fornisce widget per le app ed è destinata esclusivamente a dispositivi dotati di schermata Home o posizione simile in cui gli utenti possono incorporare i widget delle app.
-
android.software.home_screen
- L'app sostituisce la schermata Home del dispositivo.
-
android.software.live_wallpaper
- L'app utilizza o fornisce sfondi che includono animazioni.
Autorizzazioni che implicano requisiti delle funzionalità
Alcune costanti delle funzionalità hardware e software sono messe a disposizione
dopo l'API corrispondente. Per questo motivo, alcune app potrebbero usare l'API in precedenza
puoi dichiarare di richiedere l'API utilizzando
Sistema <uses-feature>
.
Per evitare che queste app vengano rese disponibili involontariamente, Google Play
presuppone che alcune autorizzazioni relative all'hardware indichino che
le funzionalità hardware sottostanti
sono richieste per impostazione predefinita. Ad esempio,
le applicazioni che usano il Bluetooth devono richiedere BLUETOOTH
autorizzazione in un elemento <uses-permission>
.
Per legacy
app, Google Play presuppone che la Dichiarazione delle autorizzazioni indichi che
la funzionalità android.hardware.bluetooth
sottostante è obbligatoria
dell'applicazione e configurare i filtri
basati su questa funzionalità. Elenchi nella tabella 2
autorizzazioni che implicano requisiti delle funzionalità equivalenti a quelli dichiarati in
<uses-feature>
elementi.
<uses-feature>
dichiarazione, incluse le eventuali
android:required
dichiarato, hanno sempre la precedenza sull'attributo
funzionalità implicate dalle autorizzazioni nella tabella 2. Per una qualsiasi di queste autorizzazioni,
puoi disattivare i filtri in base alla funzionalità implicita esplicitamente
dichiarando la caratteristica in un elemento <uses-feature>
con l'attributo required
impostato su false
.
Ad esempio, per
disattiva i filtri in base all'autorizzazione CAMERA
, aggiungi il
seguenti dichiarazioni <uses-feature>
al file manifest:
<uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
Attenzione:se la tua app ha come target Android 5.0 (livello API 21) o
e utilizza ACCESS_COARSE_LOCATION
o
Autorizzazione ACCESS_FINE_LOCATION
per ricevere la posizione
dalla rete o da un GPS, devi inoltre specificare
dichiarare che la tua app utilizza android.hardware.location.network
o android.hardware.location.gps
funzionalità hardware.
Tabella 2. Autorizzazioni del dispositivo che implicano l'utilizzo dell'hardware del dispositivo.
Categoria | Autorizzazione | Requisito per le funzionalità implicite |
---|---|---|
Bluetooth | BLUETOOTH |
android.hardware.bluetooth
Per informazioni dettagliate, vedi Gestione speciale per la funzione Bluetooth. |
BLUETOOTH_ADMIN |
android.hardware.bluetooth |
|
Fotocamera | CAMERA |
android.hardware.camera android.hardware.camera.autofocus |
Posizione | 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 |
|
|
Microfono | 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 |