English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文实例讲述了Android权限操作之uses-permission。分享给大家供大家参考,具体如下:
我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android的权限非常多。我们在开发软件的时候,也需要声明相应的权限,比如希望软件能发短信,需要声明软件调用短信的权限,否则软件运行的时候就会报错。
Android的权限在AndroidManifest.xml文件里配置。AndroidManifest文件中有四个标签与permission有关,它们分别是 <permission>、 <permission-group> 、<permission-tree> 和 <uses-permission>。其中最常用的是 <uses-permission>,当我们需要获取某个权限的时候就必须在我们的manifest文件中声明<uses-permission>。
<?xml version="1.0" encoding="utf-8"?> <manifest> <application> </application> <uses-permission /> <permission /> <permission-tree /> <permission-group /> ... </manifest>
<permission>和 <uses-permission>的作用相似,两者之间的不同之处,<uses-permission>是android预定义的权限,<permission>是自己定义的权限。 <permission>用的相对较少,<permission-group> <permission-tree>这两个标签就更少见了,简单说<permission-group> 就是声明一个标签,该标签代表了一组permissions,而<permission-tree>是为一组permissions声明了一个namespace。后面三个标签具体使用方法后续文章会有介绍。
<permission>定义方法如下:
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] />
Il codice sopra è tratto dal documento ufficiale: http://developer.android.com/guide/topics/manifest/permission-element.html. L'attributo propectionLevel è obbligatorio, deve dichiarare al sistema di notificare all'utente l'app che richiede il permesso, o chi può considerarsi autorizzato a ottenere il permesso. L'attributo permissionGroup è opzionale e viene utilizzato insieme a <permission-group>. label, name e icon sono usati per descrivere il permesso. L'uso di <permission> sarà analizzato in dettaglio in seguito.
<uses-permission> è uno dei più utilizzati, la definizione ufficiale è la seguente:
<uses-permission android:name="string" />
Ad esempio, la definizione dei permessi di短信和电话:
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.SEND_SMS"/>
Di seguito sono riportate le informazioni raccolte su <uses-permission>, per facilitare la ricerca durante l'uso:
android.permission.ACCESS_CHECKIN_PROPERTIES
Consente l'accesso in lettura/scrittura alla tabella “properties” nel database checkin, il valore può essere modificato prima dell'invio (Consente l'accesso in lettura/scrittura alla tabella “properties” nel database checkin, il valore può essere modificato prima dell'invio)
android.permission.ACCESS_COARSE_LOCATION
Permette a un'applicazione di accedere a ID di cella o punti di accesso Wi-Fi per ottenere una posizione approssimativa (Permette all'applicazione di accedere a ID di cella o punti di accesso Wi-Fi per ottenere una posizione approssimativa)
android.permission.ACCESS_FINE_LOCATION
Permette a un'applicazione di accedere a posizioni precise (ad esempio, GPS) (Permette all'applicazione di accedere a posizioni precise (ad esempio, GPS)).
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
Permette a un'applicazione di accedere ai comandi aggiuntivi dei fornitori di posizioni (Permette all'applicazione di accedere ai comandi aggiuntivi dei fornitori di posizioni).
android.permission.ACCESS_MOCK_LOCATION
Permette a un'applicazione di creare fornitori di posizioni simulate per il testing (Permette all'applicazione di creare fornitori di posizioni simulate per il testing).
android.permission.ACCESS_NETWORK_STATE
Permette alle applicazioni di accedere alle informazioni riguardanti le reti (Permette alle applicazioni di accedere alle informazioni riguardanti le reti).
android.permission.ACCESS_SURFACE_FLINGER
Permette a un'applicazione di utilizzare le funzionalità di basso livello di SurfaceFlinger (Permette all'applicazione di utilizzare le funzionalità di basso livello di SurfaceFlinger).
android.permission.ACCESS_WIFI_STATE
Permette alle applicazioni di accedere alle informazioni sullo stato della rete Wi-Fi (Permette alle applicazioni di accedere alle informazioni riguardanti le reti Wi-Fi).
android.permission.ADD_SYSTEM_SERVICE
Permette a un'applicazione di pubblicare servizi di livello di sistema (Permette all'applicazione di pubblicare servizi di livello di sistema).
android.permission.BATTERY_STATS
Consente a un'applicazione di aggiornare le statistiche della batteria del telefono (Consente a un'applicazione di aggiornare le statistiche della batteria del telefono)
android.permission.BLUETOOTH
Consente alle applicazioni di connettersi ai dispositivi Bluetooth abbinati (Consente alle applicazioni di connettersi ai dispositivi Bluetooth abbinati)
android.permission.BLUETOOTH_ADMIN
Consente alle applicazioni di rilevare e abbinarsi ai dispositivi Bluetooth (Consente alle applicazioni di rilevare e abbinarsi ai dispositivi Bluetooth)
android.permission.BRICK
Richiesto per essere in grado di disabilitare il dispositivo (molto pericoloso) (Richiesto per essere in grado di disabilitare il dispositivo (molto pericoloso)!)
android.permission.BROADCAST_PACKAGE_REMOVED
Consente a un'applicazione di trasmettere un messaggio di notifica dopo che un pacchetto di applicazione è stato rimosso (Consente a un'applicazione di trasmettere un messaggio di notifica dopo che un pacchetto di applicazione è stato rimosso)
package has been removed)
android.permission.BROADCAST_STICKY
Consente a un'applicazione di trasmettere intents comuni (Consente a un'applicazione di trasmettere intents comuni)
android.permission.CALL_PHONE
Consente a un'applicazione di inizializzare una chiamata telefonica senza passare attraverso l'interfaccia utente del dialer e necessitando della conferma dell'utente (Consente a un'applicazione di inizializzare una chiamata telefonica senza passare attraverso l'interfaccia utente del dialer e necessitando della conferma dell'utente.)
android.permission.CALL_PRIVILEGED
Consente a un'applicazione di chiamare qualsiasi numero di telefono, inclusi i numeri di emergenza, senza passare attraverso l'interfaccia utente del dialer per confermare la chiamata in corso.
android.permission.CAMERA
È richiesto per poter accedere al dispositivo della fotocamera.
android.permission.CHANGE_COMPONENT_ENABLED_STATE
Consente a un'applicazione di modificare lo stato di abilitazione o disabilitazione di un componente o di altri.
android.permission.CHANGE_CONFIGURATION
Consente a un'applicazione di modificare la configurazione corrente, come la localizzazione.
android.permission.CHANGE_NETWORK_STATE
Consente alle applicazioni di modificare lo stato di connettività di rete.
android.permission.CHANGE_WIFI_STATE
Consente alle applicazioni di modificare lo stato di connessione Wi-Fi.
android.permission.CLEAR_APP_CACHE
Consente a un'applicazione di svuotare la cache di tutti gli applicativi installati sul dispositivo.
android.permission.CLEAR_APP_USER_DATA
Consente a un'applicazione di cancellare le impostazioni utente(Consente a un'applicazione di cancellare i dati utente)
android.permission.CONTROL_LOCATION_UPDATES
Consente di abilitare/disabilitare le notifiche di aggiornamento della posizione dal modulo radio(Consente di abilitare/disabilitare le notifiche di aggiornamento della posizione dal modulo radio. )
android.permission.DELETE_CACHE_FILES
Consente a un'applicazione di eliminare file di cache(Consente a un'applicazione di eliminare file di cache)
android.permission.DELETE_PACKAGES
Consente a un'applicazione di eliminare pacchetti(Consente a un'applicazione di eliminare pacchetti)
android.permission.DEVICE_POWER
Consente l'accesso a livello basso alla gestione dell'alimentazione(Consente l'accesso a livello basso alla gestione dell'alimentazione)
android.permission.DIAGNOSTIC
Consente alle applicazioni di accedere ai risorse di diagnostica in lettura/scrittura(Consente alle applicazioni di accedere ai risorse di diagnostica in lettura/scrittura. )
android.permission.DISABLE_KEYGUARD
Consente alle applicazioni di disabilitare il blocco di schermo(Consente alle applicazioni di disabilitare il blocco di schermo )
android.permission.DUMP
Consente a un'applicazione di recuperare informazioni di dump di stato dai servizi di sistema(Consente a un'applicazione di recuperare informazioni di dump di stato dai servizi di sistema.)
android.permission.EXPAND_STATUS_BAR
Consente a un'applicazione di espandere o ridurre la barra di stato, Android开发网提示应该是一个类似Windows Mobile中的托盘程序(Consente a un'applicazione di espandere o ridurre la barra di stato. )
android.permission.FACTORY_TEST
Eseguito come applicazione di test del produttore, in qualità di utente root (Run as a manufacturer test application, running as the root user. )
android.permission.FLASHLIGHT
Consente l'accesso alla luce flash, il sito android development segnala che HTC Dream non include la luce flash (Allows access to the flashlight )
android.permission.FORCE_BACK
Consente all'applicazione di forzare un'operazione di ritorno a qualsiasi attività in primo piano (Allows an application to force a BACK operation on whatever is the top activity. )
android.permission.FOTA_UPDATE
Non si conosce ancora a cosa serve questa funzione, secondo l'analisi del sito android development, potrebbe essere una permissione riservata.
android.permission.GET_ACCOUNTS
Consente l'accesso all'elenco degli account nel Accounts Service (Allows access to the list of accounts in the Accounts Service)
android.permission.GET_PACKAGE_SIZE
Consente a un'applicazione di scoprire lo spazio utilizzato da qualsiasi pacchetto (Allows an application to find out the space used by any package. )
android.permission.GET_TASKS
Consente a un'applicazione di ottenere informazioni sui task attualmente o recentemente eseguiti: una rappresentazione ridotta dei task, quali attività sono in esecuzione, ecc. (Allows an application to get information about the currently or recently running tasks: a thumbnail representation of the tasks, what activities are running init, etc.)
android.permission.HARDWARE_TEST
Consente l'accesso agli hardware esterni (Consente l'accesso agli hardware esterni. )
android.permission.INJECT_EVENTS
Consente a un'applicazione di iniettare eventi utente come tasti, toccare, trackball e altri in un flusso di eventi, il sito di sviluppo android avvisa che è una tecnica di hook (Consente a un'applicazione di iniettare eventi utente (tasti, toccare, trackball) nel flusso di eventi e consegnarli a OGNI finestra.)
android.permission.INSTALL_PACKAGES
Consente a un'applicazione di installare pacchetti (Consente a un'applicazione di installare pacchetti. )
android.permission.INTERNAL_SYSTEM_WINDOW
Consente di aprire finestre utilizzate da parti dell'interfaccia utente del sistema (Consente a un'applicazione di aprire finestre che sono per l'uso da parte di parti dell'interfaccia utente del sistema. )
android.permission.INTERNET
Consente all'applicazione di aprire socket di rete (Consente alle applicazioni di aprire socket di rete)
android.permission.MANAGE_APP_TOKENS
Consente all'applicazione di gestire (creare, distruggere, ordinamento Z-predefinito) i token dell'applicazione nel gestore delle finestre (Consente a un'applicazione di gestire (creare, distruggere, Z-order) i token dell'applicazione nel gestore delle finestre. )
android.permission.MASTER_CLEAR
Al momento non ci sono spiegazioni chiare, il sito di sviluppo android analizza che potrebbe essere cancellare tutti i dati, simile a un formattamento completo
android.permission.MODIFY_AUDIO_SETTINGS
Consente all'applicazione di modificare le impostazioni audio globali
android.permission.MODIFY_PHONE_STATE
Consente di modificare lo stato del telefono, come l'accensione, l'interfaccia utente, ecc.
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
Consente di montare e smontare i file system per lo storage removibile
android.permission.PERSISTENT_ACTIVITY
Consente a un'applicazione di rendere persistenti le sue activities
android.permission.PROCESS_OUTGOING_CALLS
Consente all'applicazione di monitorare, modificare o annullare le chiamate in uscita
android.permission.READ_CALENDAR
Consente all'applicazione di leggere i dati del calendario dell'utente
android.permission.READ_CONTACTS
Consente all'applicazione di leggere i dati dei contatti dell'utente
android.permission.READ_FRAME_BUFFER
Consente all'applicazione di effettuare screenshot e, in generale, di accedere ai dati del framebuffer
android.permission.READ_INPUT_STATE
Consente a un'applicazione di recuperare lo stato attuale dei tasti e delle leve.
android.permission.READ_LOGS
Consente a un'applicazione di leggere i file dei log di sistema a livello basso.
android.permission.READ_OWNER_DATA
Consente a un'applicazione di leggere i dati dell'utente proprietario.
android.permission.READ_SMS
Consente a un'applicazione di leggere i messaggi SMS.
android.permission.READ_SYNC_SETTINGS
Consente alle applicazioni di leggere le impostazioni di sincronizzazione.
android.permission.READ_SYNC_STATS
Consente alle applicazioni di leggere le statistiche di sincronizzazione.
android.permission.REBOOT
Richiede la capacità di riavviare il dispositivo.
android.permission.RECEIVE_BOOT_COMPLETED
Consente a un'applicazione di ricevere la broadcast ACTION_BOOT_COMPLETED dopo che il sistema ha completato l'avvio.
android.permission.RECEIVE_MMS
Consente a un'applicazione di monitorare i messaggi MMS in arrivo, di registrarli o di eseguire operazioni su di essi.
android.permission.RECEIVE_SMS
Permette all'applicazione di monitorare i messaggi SMS in arrivo, di registrarli o eseguire operazioni di elaborazione su di essi.
android.permission.RECEIVE_WAP_PUSH
Permette all'applicazione di monitorare i messaggi WAPPUSH in arrivo.
android.permission.RECORD_AUDIO
Permette all'applicazione di registrare audio.
android.permission.REORDER_TASKS
Permette all'applicazione di modificare l'ordinamento Z-axis delle attività.
android.permission.RESTART_PACKAGES
Permette all'applicazione di riavviare altre applicazioni.
android.permission.SEND_SMS
Permette all'applicazione di inviare messaggi SMS.
android.permission.SET_ACTIVITY_WATCHER
Permette all'applicazione di monitorare o controllare come vengono avviate le attività globalmente nel sistema.
android.permission.SET_ALWAYS_FINISH
Permette all'applicazione di controllare se le attività vengono completate immediatamente quando messe in background.
android.permission.SET_ANIMATION_SCALE
Modifica il fattore di scala dell'animazione globale (Modifica il fattore di scala dell'animazione globale. )
android.permission.SET_DEBUG_APP
Configura un'applicazione per il debug (Configura un'applicazione per il debug. )
android.permission.SET_ORIENTATION
Permette l'accesso di basso livello all'impostazione dell'orientamento (effettivamente rotazione) dello schermo (Permette l'accesso di basso livello all'impostazione dell'orientamento (effettivamente rotazione) dello schermo. )
android.permission.SET_PREFERRED_APPLICATIONS
Permette a un'applicazione di modificare l'elenco delle applicazioni preferite con i metodi PackageManager.addPackageToPreferred() e PackageManager.removePackageFromPreferred() (Permette a un'applicazione di modificare l'elenco delle applicazioni preferite con i metodi PackageManager.addPackageToPreferred() e PackageManager.removePackageFromPreferred(). )
android.permission.SET_PROCESS_FOREGROUND
Permette a un'applicazione di forzare qualsiasi processo in esecuzione attualmente a essere in primo piano (Permette a un'applicazione di forzare qualsiasi processo in esecuzione attualmente a essere in primo piano. )
android.permission.SET_PROCESS_LIMIT
Permette di impostare il numero massimo di processi di esecuzione (Permette a un'applicazione di impostare il numero massimo di processi applicativi (non necessari) che possono essere in esecuzione. )
android.permission.SET_TIME_ZONE
Permette alle applicazioni di impostare la zona oraria del sistema.
android.permission.SET_WALLPAPER
Permette alle applicazioni di impostare lo sfondo.
android.permission.SET_WALLPAPER_HINTS
Permette alle applicazioni di impostare suggerimenti per lo sfondo.
android.permission.SIGNAL_PERSISTENT_PROCESSES
Permette a un'applicazione di richiedere che un segnale venga inviato a tutti i processi persistenti.
android.permission.STATUS_BAR
Permette a un'applicazione di aprire, chiudere o disabilitare la barra di stato e i suoi iconi.
android.permission.SUBSCRIBED_FEEDS_READ
Permette a un'applicazione di consentire l'accesso al fornitore di contenuti dei feed RSS sottoscritti.
android.permission.SUBSCRIBED_FEEDS_WRITE
Il sistema tiene temporaneamente questa impostazione, il sito web di sviluppo android crede che in futuro verrà aggiunta questa funzione.
android.permission.SYSTEM_ALERT_WINDOW
Permette a un'applicazione di aprire finestre utilizzando il tipo TYPE_SYSTEM_ALERT, visualizzate in cima a tutte le altre applicazioni.
android.permission.VIBRATE
Consente l'accesso al dispositivo vibrante (Consente l'accesso al dispositivo vibrante)
android.permission.WAKE_LOCK
Consente l'uso di WakeLocks di PowerManager per mantenere il processo visibile quando lo schermo si oscura (Consente l'uso di WakeLocks di PowerManager per mantenere il processo visibile quando lo schermo si oscura)
processor dal riposo o lo schermo dall'oscuramento)
android.permission.WRITE_APN_SETTINGS
Consente alle applicazioni di scrivere le impostazioni API (Consente alle applicazioni di scrivere le impostazioni API)
android.permission.WRITE_CALENDAR
Consente a un'applicazione di scrivere ma non leggere i dati del calendario dell'utente (Consente a un'applicazione di scrivere (ma non leggere) i dati del calendario dell'utente. )
android.permission.WRITE_CONTACTS
Consente a un'applicazione di scrivere ma non leggere i dati dei contatti dell'utente (Consente a un'applicazione di scrivere (ma non leggere) i dati dei contatti dell'utente. )
android.permission.WRITE_GSERVICES
Consente a un'applicazione di modificare la mappa dei servizi Google (Consente a un'applicazione di modificare la mappa dei servizi Google. )
android.permission.WRITE_OWNER_DATA
Consente a un'applicazione di scrivere ma non leggere i dati del proprietario (Consente a un'applicazione di scrivere (ma non leggere) i dati del proprietario. )
android.permission.WRITE_SETTINGS
Consente a un'applicazione di leggere o scrivere le impostazioni di sistema (Consente a un'applicazione di leggere o scrivere le impostazioni di sistema. )
android.permission.WRITE_SMS
Permette all'applicazione di scrivere messaggi SMS (Permette all'applicazione di scrivere messaggi SMS)
android.permission.WRITE_SYNC_SETTINGS
Permette all'applicazione di scrivere le impostazioni di sincronizzazione (Permette alle applicazioni di scrivere le impostazioni di sincronizzazione)
PS: Per le funzioni degli attributi del file AndroidManifest.xml, puoi consultare gli strumenti online di questo sito:
Descrizione completa delle funzioni e dei permessi di AndroidManifest:
http://tools.jb51.net/table/AndroidManifest
Leggi di più sui contenuti relativi a Android di interesse per i lettori possono consultare le sezioni speciali di questo sito: 'Guida di base e avanzata per lo sviluppo Android', 'Tecniche di debug e soluzioni ai problemi comuni per Android', 'Tecniche di operazione multimediale per Android (audio, video, registrazione, ecc.)', 'Sommarizzazione dell'uso dei componenti di base di Android', 'Sommarizzazione delle tecniche di View di Android', 'Sommarizzazione delle tecniche di layout di Android' e 'Sommarizzazione dell'uso dei controlli di Android'.
Spero che il contenuto di questo articolo possa essere utile per la progettazione di applicazioni Android.
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il diritto d'autore è della proprietà del rispettivo autore, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene il diritto di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.