如何请求权限:READ_PRIVILEGED_PHONE_STATE?

gri*_*inh 11 permissions android

我如何请求权限“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" />
Run Code Online (Sandbox Code Playgroud)

我还尝试将其作为任何常规许可来请求:

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

但什么也没发生。系统不会提示我授予此权限。没有出现任何警报对话框。我如何请求此许可?

Fel*_*lma 4

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

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

参考:

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