2017-01-26 33 views
0

我想在我的Android代碼中動態地向系統添加權限。 addPermission方法似乎需要PermissionInfo對象作爲參數,我嘗試以下,但它拋出一個錯誤:「java.lang.SecurityException異常標籤必須允許指定」:包管理器中的addPermission()API方法

PermissionInfo pi = new PermissionInfo(); 
    pi.name = myCustomPermission; 
    pi.protectionLevel = PermissionInfo.PROTECTION_DANGEROUS; 
    final PackageManager packageManager = getApplicationContext().getPackageManager(); 
    packageManager.addPermission(pi); 

我沒有在清單中添加組件文件也是。我在網上找不到任何例子。如果你能描述我如何做到這一點,或者指點我的例子,那將是非常棒的。

非常感謝!

+0

費用https://guides.codepath.com/android/Understanding- App-Permissions) –

+0

這不解釋addPermission()添加的動態權限。 –

回答

0

此代碼應該工作:

PermissionInfo pi = new PermissionInfo(); 
    pi.name = myCustomPermission; 
    pi.labelRes = R.string.permission_label; 
    pi.protectionLevel = PermissionInfo.PROTECTION_DANGEROUS; 
    final PackageManager packageManager = getApplicationContext().getPackageManager(); 
    packageManager.addPermission(pi); 

(如教導this book)自由[理解應用權限]讀取(

+0

好吧,它不起作用,因爲它似乎我們需要額外的權限,需要使用平臺密鑰進行簽名,這在上面的書中沒有提到。什麼是要求這些權限的原因? –