一個Android應用可能需要權限才能調用Android系統的功能;一個Android應用也可能被其他應用調用,因此它也需要聲明調用自身所需要的權限。
聲明運行該應用本身所需要的權限
通過爲<manifest.../>
元素添加<use-permission.../>
子元素即可爲程序本身聲明權限。
例如,在<manifest.../>
元素裏添加如下代碼:
<!--聲明該應用本身需要打電話的權限-->
<use-permission android:name="android.permission.CALL_PHONE"/>
聲明調用該應用 所需的權限
通過爲應用的各組件元素,如<activity.../>
元素添加<use-permission.../>
子元素即可聲明調用該程序所需的權限。
例如,在<activity.../>
元素裏添加如下代碼:
<!--聲明該應用本身需要發送短信的權限-->
<use-permission android:name="android.permission.SEND_SMS"/>
通過上面的介紹可以看出,<use-permission.../>
元素的用法倒不難,但到底有多少權限呢?實際上Android提供了大量的權限,這些權限都位於Manifest.permission類中。一般來說,有如下所示的常用權限。
權限 | 說明 |
---|---|
ACCESS_NETWORK_STATE | 允許應用程序獲取網絡狀態信息的權限 |
ACCESS_WIFI_STATE | 允許應用程序獲取Wi-Fi網絡狀態信息的權限 |
BATTERY_STATS | 允許應用程序獲取電池狀態信息的權限 |
BLUETOOTH | 允許應用程序連接匹配的藍牙設備的權限 |
BLUETOOTH_ADMIN | 允許應用程序發現匹配的藍牙設備的權限 |
BROADCAST_SMS | 允許應用程序廣播收到短信提醒的權限 |
CALL_PHONE | 允許應用程序撥打電話的權限 |
CAMERA | 允許應用程序使用照相機的權限 |
CHANGE_NETWORK_STATE | 允許應用程序改變網絡連接狀態的權限 |
CHANGE_WIFI_STATE | 允許應用程序改變wifi網絡連接狀態的權限 |
DELETE_CACHE_FILES | 允許應用程序刪除緩存文件的權限 |
DELETE_PACKAGES | 允許應用程序刪除安裝包的權限 |
FLASHLIGHT | 允許應用程序訪問閃光燈的權限 |
INTERNET | 允許應用程序打開網絡Socket的權限 |
MODIFY_AUDIO_SETTINGS | 允許應用程序修改全局聲音設置的權限 |
PROCESS_OUTGOING_CALLS | 允許應用程序監聽、控制、取消呼出電話的權限 |
READ_CONTACTS | 允許應用程序讀取用戶的聯繫人數據的權限 |
READ_HISTORY_BOOKMARKS | 允許應用程序讀取歷史書籤的權限 |
READ_OWNER_DATA | 允許應用程序讀取用戶數據的權限 |
READ_PHONE_STATE | 允許應用程序讀取電話狀態的權限 |
READ_PHONE_SMS | 允許應用程序讀取短信的權限 |
REBOOT | 允許應用程序重啓系統的權限 |
RECEIVE_MMS | 允許應用程序接收、監控、處理彩信的權限 |
RECEIVE_SMS | 允許應用程序接收、監控、處理短信的權限 |
RECORD_AUDIO | 允許應用程序錄音的權限 |
SEND_SMS | 允許應用程序發送短信的權限 |
SET_ORIENTATION | 允許應用程序旋轉屏幕的權限 |
SET_TIME | 允許應用程序設置時間的權限 |
SET_TIME_ZONE | 允許應用程序設置時區的權限 |
SET_WALLPAPER | 允許應用程序設置桌面壁紙的權限 |
VIBRATE | 允許應用程序控制振動器的權限 |
WRITE_CONTACTS | 允許應用程序寫入用戶聯繫人的權限 |
WRITE_HISTORY_BOOKMARKS | 允許應用程序寫歷史書籤的權限 |
WRITE_OWNER_DATA | 允許應用程序寫用戶數據的權限 |
WRITE_SMS | 允許應用程序寫短信的權限 |