如何请求 READ_PRIVILEGED_PHONE_STATE 权限?

9

我该如何请求获得"android.permission.READ_PRIVILEGED_PHONE_STATE"权限?我知道从Android 10开始,从Google Play商店安装的第三方应用程序不能声明特权权限。

https://developer.android.com/about/versions/10/privacy/changes#data-ids

但是我的应用程序不会在Google Play Store中分发。我将共享apk文件,并且用户将手动安装应用程序。

我已经在清单文件中声明了权限:

<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />

我也尝试将其请求为任何常规权限:

if(ActivityCompat.checkSelfPermission(this.getApplicationContext(), "android.permission.READ_PRIVILEGED_PHONE_STATE") != PackageManager.PERMISSION_GRANTED)        {
            ActivityCompat.requestPermissions(this, new String[]{"android.permission.READ_PRIVILEGED_PHONE_STATE"},123);
        }

但是没有任何反应。我没有被提示授予权限。也没有出现警示对话框。我该如何请求此权限?

1个回答

4

你不能在 Android 10 版本中使用这个权限。你可以将 targetSdkVersion 改为 29 或以下的版本。

Android 10 改变了设备标识符的权限,使得所有设备标识符现在都受到 READ_PRIVILEGED_PHONE_STATE 权限的保护。READ_PRIVILEGED_PHONE_STATE 权限只授予平台密钥签名和特权系统应用程序。

参考资料:

https://source.android.com/devices/tech/config/device-identifiers


那么没有任何方法可以获取这个权限吗?即使我正在侧载我的 APK? - grinh
1
不,只有系统应用程序具有此权限。我在我的项目中遇到了同样的问题。我向项目的 OEM 发出了请求。 - Felipe Palma
当我在Android 10中需要该权限时该怎么办? - Anuj
在我的情况下,我不需要它 - 我添加了另一个原因,但一直出错。我将其删除后就正常了! - Vicente Domingos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接