ADB pm grant 对 Android 10 上的某些权限不起作用

113*_*408 1 android adb android-10.0

我正在尝试新的 android 10 并检查它与以前版本的差异。ADB我尝试通过在 Android 9 上使用的权限授予一些权限,但没有成功。

由于它与 ADB 相关,我不确定在哪里查看它的文档,但这是我尝试过的:

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
Run Code Online (Sandbox Code Playgroud)

这些都是AndroidManifest.xml文件中声明的权限,奇怪的是只有新的权限ACCESS_BACKGROUND_LOCATION起作用,而现有的权限都不起作用。我相信该权限的名称是正确的,因为它在撤销它时起作用。

或者,我尝试查找这些权限的字符串并使用该appops命令,但它也不起作用。

任何帮助表示赞赏。

编辑:

经过进一步调查,我注意到,当应用程序全新安装时,我使用的pm grant一切都会按预期工作。但是,手动拒绝权限(从设置)后pm grant不再起作用

113*_*408 5

也许这会帮助其他人遇到这个问题。正如我的编辑中提到的:

经过进一步调查,我注意到,当应用程序全新安装时,我使用 pm grant 一切都会按预期工作。但是,在手动拒绝权限(从设置中)后,pm grant 不再起作用

一个解决方案(对我有用)是在尝试再次设置权限之前重置权限。称呼:

cmd appops reset my.package.app
Run Code Online (Sandbox Code Playgroud)

然后:

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
Run Code Online (Sandbox Code Playgroud)