【问题标题】:How to request for permission: READ_PRIVILEGED_PHONE_STATE?如何请求许可:READ_PRIVILEGED_PHONE_STATE?
【发布时间】:2020-06-18 04:40:18
【问题描述】:

如何请求“android.permission.READ_PRIVILEGED_PHONE_STATE”权限?我知道从 Android 10 开始,从 Google Play 商店安装的第三方应用程序无法声明特权。

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

但是,我的应用不会随 Google Play 商店一起分发。我将共享 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);
        }

但是什么都没有发生。系统不会提示我授予此权限。没有显示警报对话框。如何申请此权限?

【问题讨论】:

    标签: android permissions


    【解决方案1】:

    您不能将此权限用于 android 10 版本。您可以将 targetSdkVersion 更改为低于 29

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

    参考:

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

    【讨论】:

    • 那么就没有办法获得这个权限了吗?即使我在旁加载我的 APK?
    • 不,只有系统应用有这个权限。我在我的项目中遇到了同样的问题。我向项目的 OEM 提出了请求。
    • 当我在 Android 10 中需要该权限时该怎么办?
    猜你喜欢
    • 2018-07-08
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多