1. 程式人生 > >Android系統給第三方應用許可權開啟

Android系統給第三方應用許可權開啟

Android系統給第三方應用許可權開啟(不會彈授予許可權視窗)

frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java 類是對預設許可權管理類

可以檢視grantDefaultSystemHandlerPermissions 該方法,裡面有就有授予許可權類似方法,可以模仿

我們可以通過此類來對我們系統中存在的應用進行預設許可權設定。

下面舉個例子,修改系統中應用儲存空間許可權:

private void grantDefaultSystemHandlerPermissions(int userId) {
	...
   	grantStoragePermissionsToCustomApp(userId);// add 
   	...
}

private void grantStoragePermissionsToCustomApp(int userId){
	final String []itemString = mService.mContext.getResources()    			.getStringArray(com.android.internal.R.array.storage_permission_custom_packagename);
    for (int i = 0; i < itemString.length; i++) {
    	PackageParser.Package customPackage = getPackageLPr(itemString[i]);
        if ((customPackage != null) && doesPackageSupportRuntimePermissions(customPackage)) {
            grantRuntimePermissionsLPw(customPackage, STORAGE_PERMISSIONS, userId);
		}
	}
}

frameworks/base/core/res/res/values/ .xml檔案 需要預設開啟的應用包名列表

<string-array name="storage_permission_custom_packagename" translatable="false">
    <item>com.**.**</item>
</string-array>