<usa-funzionalità>

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 attributo required 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 utilizzando name.

Sebbene l'elemento <uses-feature> sia attivato solo per dispositivi con livello API 4 o superiore, includi questi elementi per tutti anche se minSdkVersion è 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".

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 utilizzato android: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'attributo android: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>.

Se minSdkVersion è ... e targetSdkVersion è Risultato
<=4 o <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 <uses-feature>.
Risultato: Google Play non filtra l'applicazione da nessun dispositivo.
<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.
<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.
<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 android:required="false".
Risultato: Google Play disattiva i filtri basati sul Bluetooth delle funzionalità per tutti i dispositivi.
<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:

  1. 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:
    1. Apri il progetto e seleziona Esegui > Modifica configurazioni.
    2. Seleziona il segno più accanto all'angolo in alto a sinistra della sezione Esegui/Debug Configurazioni.
    3. Seleziona Gradle.
    4. Inserisci "APK non firmato" in Nome.
    5. Scegli il modulo dalla sezione Progetto Gradle.
    6. Inserisci "assembla" in Attività.
    7. Seleziona OK per completare la nuova configurazione.
    8. Assicurati che la configurazione di esecuzione dell'APK non firmato sia selezionata nella barra degli strumenti e seleziona Esegui > Esegui "APK non firmato".
    di Gemini Advanced. Puoi trovare l'APK non firmato nei Directory <ProjectName>/app/build/outputs/apk/.
  2. Individua lo strumento aapt2, se non si trova già nel tuo PATH. Se utilizzi SDK Tools r8 o versioni successive, puoi trovare aapt2 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.

  3. 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 oppure android.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 anche android.hardware.camera. È necessaria una fotocamera posteriore a meno che android.hardware.camera non venga dichiarato con android: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 il CAMERA, 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 anche android.hardware.camera. È necessaria una fotocamera posteriore a meno che android.hardware.camera non venga dichiarato con android:required="false".

Attenzione: se l'app utilizza android.hardware.camera.front ma non dichiara esplicitamente android.hardware.camera con android.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, dichiara android.hardware.camera con android.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 anche android.hardware.camera. È necessaria una fotocamera posteriore a meno che android.hardware.camera non venga dichiarato con android: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 include CAMERA, 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 un android.colorCorrection.mode di TRANSFORM_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 di FULL include funzionalità di acquisizione a raffica, controllo per frame e post-elaborazione manuale controllo. Consulta INFO_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'attributo android: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'attributo android: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 utilizza android:screenOrientation ma non di cui hai bisogno, puoi disattiva il requisito dichiarando l'orientamento con un elemento <uses-feature> e includi android: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 con android: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 con android: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 con android.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 con android:required="false". Aggiungi questa dichiarazione se l'app utilizza, ma non richiede, un'interfaccia touchscreen reale. Tutti app che non richiedono esplicitamente android.hardware.touchscreen funziona anche sui dispositivi con android.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 con android: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 con android: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 con android: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à, vedi FEATURE_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à, vedi FEATURE_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à, vedi FEATURE_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 con android: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

android.hardware.location

android.hardware.location.network Solo quando il livello API target è 20 o inferiore.

ACCESS_FINE_LOCATION

android.hardware.location

android.hardware.location.gps Solo quando il livello API target è 20 o inferiore.

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