android marshmallow 的許可權
1.許可權組定義。
許可權分為若干組。據谷歌,我們可以說,乙個許可權組放在一起相關的許可權在乙個單一的名稱/標籤。您可以將許可權
一起使用《許可》的元素裡面permissiongroup屬性。
相同的許可權組的分組許可權都顯示為乙個組時審批許可權,或檢查其許可權的應用程式時。
讓我們來看看許可權組標籤的結構:
如前述結構的元件可以被解釋如下:
android:description:這是指用來描述組簡單的文字。
android:icon:這是指從表示許可的可繪製資源的圖示。
android:label:這是指該組乙個簡單的文字名稱。
android:name:這是組的名稱。它是用來將許可權分配給特定的組。
下表顯示了不同的類別是否有許可權組的許可權:
2.檢視許可權每個應用
你可以看一下許可權使用設定應用程式或 adb 命令檢視每個應用。
利用adb命令列,可以列印裝置上的所有已知的許可權。包管理器(pm)命令看起來像下面這樣:
$ adb shell pm list permissions [options]
列表許可權得到[選項]和《組》引數(可選)。
在這裡,可以選擇如下:
-g:這是指一組許可權列表
-f:這將列印的所有資訊
-s:這將列印乙個簡短的總結,這是使用者看到螢幕上的什麼時候檢查許可權或批准他們
-d:這看起來並僅列印許可權被認為是危險的
-u:只列出對使用者可見的許可權
3.理解android6許可權 執行許可權
android6展示了新的許可權模型,其中使用者能夠在應用程式執行直接管理應用程式的許可權。谷歌已經改變了舊的許可權模型,主要是為了能夠更輕鬆,無摩擦裝置和自動更新
對於使用者以及應用開發者。這允許使用者安裝應用程式,而不需要提前授予應用程式需要的每個許可權。使用者可以安裝不通過檢查每個許可權和衰退的安裝階段將應用程式由於單許可。
使用者可以授予或撤銷的許可權安裝的應用程式,使調整和選擇,在使用者手中的自由。
大多數的應用將需要更新目標的api23時,以解決這些問題。
4.編碼時的許可權考慮
好了,所有的解釋之後,我們已經來到了編碼部分,下面是用於處理許可權金鑰的方法:
context.checkselfpermission():這將檢查您的應用程式是否已授予許可權
activity.requestpermission():這在執行時請求許可權
即使您的應用程式還沒有針對android6,您應該測試應用程式準備來支援它。
5.測試許可權
在android6許可權模型,您的應用程式必須詢問使用者在執行時單獨的許可權。有對遺留應用程式的相容性有限的支援,
你應該測試您的應用程式,並測試版本,以確保它的支援。
您可以使用下面的測試指南,並與新的行為進行應用測試:
地圖您的應用程式的許可權。
測試流程與許可權的授予與撤銷。
adb命令shell是有幫助的我們檢查許可權:
清單按組應用程式的許可權和狀態可以使用應做到以下幾點adb命令:
adb shell pm list permissions -g
可以授予或使用下面的adb語法撤消許可權:
adb shell pm [grant|revoke]
您可以授予的許可權和使用下面的adb命令安裝apk:
adb install -g
6.執行時許可權的編碼
if (checkselfpermission(manifest.permission.read_contacts) !=
packagemanager.permission_granted) ,
sample_matrixy_read_contacts);
}//now this is our callback
@override
public void onrequestpermissionsresult(int requestcode, string
permissions, int grantresults) else }}
我們需要了解的常量:
public static final int permission_denied=-1 :
從api level 1開始, 許可權不授予給定的包
public static final int permission_granted=0 :
從api level 1開始, 許可權授予給定的包
7.某些許可權是正常的,可以放心使用
目前,被列為protection_normal的許可權如下:
android.permission.access_location_extra_commands
android.permission.access_network_state
android.permission.access_wifi_state
android.permission.access_wimax_state
android.permission.bluetooth
android.permission.bluetooth_admin
android.permission.broadcast_sticky
android.permission.change_network_state
android.permission.change_wifi_multicast_state
android.permission.change_wifi_state
android.permission.disable_keyguard
android.permission.expand_status_bar
android.permission.flashlight
android.permission.get_accounts
android.permission.get_package_size
android.permission.internet
android.permission.kill_background_processes
android.permission.modify_audio_settings
android.permission.nfc
android.permission.persistent_activity
android.permission.read_sync_settings
android.permission.read_sync_stats
android.permission.read_user_dictionary
android.permission.receive_boot_completed
android.permission.reorder_tasks
android.permission.set_time_zone
android.permission.set_wall*****
android.permission.set_wall*****_hints
android.permission.subscribed_feeds_read
android.permission.transmit_ir
android.permission.vibrate
android.permission.wake_lock
android.permission.write_settings
android.permission.write_sync_settings
android.permission.write_user_dictionary
com.android.alarm.permission.set_alarm
com.android.launcher.permission.install_shortcut
Android 6步教你自定義View
標籤 android view 2017 02 09 17 00 119人閱讀收藏 舉報 android 203 目錄 如果你打算完全定製乙個view,那麼你需要實現view類 所有的android view都實現於這個類 並且實現確定尺寸的onmeasure 方法和確認繪圖的ondraw 方法。p...
Android 6步教你自定義View
如果你打算完全定製乙個view,那麼你需要實現view類 所有的android view都實現於這個類 並且實現確定尺寸的onmeasure 方法和確認繪圖的ondraw 方法。自定義view一共分為6步 第一步 public class smileyview extends view public...
Android 菜鳥歷程6
1.android原始碼可以編譯出android sdk adb等工具 android檔案系統,以及adt外掛程式,也就是說,我們可以從android原始碼編譯出所有android相關的東西。2.獲取當前時間的後乙個月 date currenttime new date calendar calen...