我正在试用新的android 10,并检查它与以前版本的差异。我试图通过ADB授予一些权限,这些权限以前在Android9上工作,但没有效果。
由于它与亚行有关,我不知道在哪里检查它的文档,但下面是我尝试过的:
pm grant my.package.app android.permission.ACCESS_BACKGROUND_LOCATION // permission granted
pm grant my.package.app android.permission.READ_PHONE_STATE // no error no permission granted
pm grant my.package.app android.permission.RECORD_AUDIO // no error no permission granted
pm grant my.package.app android.permission.WRITE_EXTERNAL_STORAGE // no error no permission granted
pm revoke my.package.app android.permission.READ_PHONE_STATE // permission revoked
pm revoke my.package.app android.permission.RECEIVE_SMS // permission revoked这些都是在AndroidManifest.xml文件中声明的权限,奇怪的是,只有新的ACCESS_BACKGROUND_LOCATION才能工作,但现有的权限都没有。我相信这个许可的名字是正确的,因为它在撤销它时是有效的。
或者,我试图为这些权限找到字符串,并使用appops命令,但它也不起作用。
任何帮助都很感激。
编辑:
经过进一步的调查,我注意到,当应用程序是新安装的时,我就会使用pm grant,一切都如预期的那样工作。但是,在手动拒绝权限(从设置)之后,pm grant不再工作了
发布于 2021-02-23 10:18:54
也许这会帮助其他人解决这个问题。正如我在编辑中提到的那样:
经过进一步的调查后,我注意到当应用程序刚刚安装时,我就会使用pm授予,每样东西都能正常工作。但是,在手动(从设置中)拒绝该权限之后,授予将不再有效。
解决方案(对我有效)是在尝试重新设置权限之前重置权限。呼叫:
cmd appops reset my.package.app然后:
pm grant my.package.app android.permission.ACCESS_BACKGROUND_LOCATION
pm grant my.package.app android.permission.READ_PHONE_STATE
pm grant my.package.app android.permission.RECORD_AUDIO
pm grant my.package.app android.permission.WRITE_EXTERNAL_STORAGE发布于 2020-03-04 15:58:29
我看到了Android 10的隐私更改文档,Android不再支持从Android 10开始读取手机状态。
从Android网站上复制
如果你的应用程序的目标是安卓10或更高版本,
就会出现SecurityException。
如果应用程序的目标是Android9 (API 28)或更低,则如果应用程序具有READ_PHONE_STATE权限,该方法将返回空或占位符数据。否则,就会发生SecurityException。
请参阅下面的链接,以获得更多细节。
https://developer.android.com/about/versions/10/privacy/changes#proc-net-filesystem
https://stackoverflow.com/questions/60529532
复制相似问题