gpt4 book ai didi

android - 未授予 READ_PRIVILEGED_PHONE_STATE 权限

转载 作者:行者123 更新时间:2023-12-03 17:29:51 28 4
gpt4 key购买 nike

我想授予我的应用程序 android.permission.READ_PRIVILEGED_PHONE_STATE 权限,但即使它是一个系统应用程序(在 root 设备上的 system-priv 文件夹中进行测试),它也没有被授予。
ADB 显示请求此权限,但未授予。
在我的 list 中

<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" tools:ignore="ProtectedPermissions" />
当我尝试在运行时检查它时
if (ActivityCompat.checkSelfPermission(context.getApplicationContext(), Manifest.permission.READ_PRIVILEGED_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)
AS 给出“无法解析符号'READ_PRIVILEGED_PHONE_STATE'”并且应用程序无法编译。
为什么 READ_PRIVILEGED_PHONE_STATE 在 Manifest 中可见,但在 java 代码中不可见(Manifest.class 中也缺少)?
如何授予此权限?
我在 Root过的 Android Oreo 上对其进行了测试。
编辑:这回答了我的部分问题: Permission is not a changeable permission type
许可是在 Lollipop 上获得的,但不是在 Oreo 上。
但是问题仍然存在:为什么 READ_PRIVILEGED_PHONE_STATE 在 Manifest 中可见,但在 java 代码中不可见(Manifest.class 中也缺少)?

最佳答案

我认为可能发生的是 Drobinsky 没有打电话:

 String[] permissions = {"android.permission.READ_PHONE_STATE"};
int requestCode = 5;
ActivityCompat.requestPermissions(this,permissions, requestCode);

在调用“ActivityCompat.checkSelfPermission(…”之前

在 Activity 中,您还可以添加一个权限通知处理程序,如下所示:
 @Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case 5: //REQUEST_READ_PHONE_STATE:
if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
// Do what you want to do with the granted permission

即使您已在 list 中添加了权限,用户也必须在运行时授予此权限。发生的情况是会出现一个弹出窗口,要求用户授予此权限,如果用户授予它,“checkSelfPermission”方法将正常工作。弹出 block 是自动的;即无需将代码添加到应用程序中。我认为您可以添加一条短信,显示需要许可的原因。某些权限请求需要以这种方式处理,而某些权限请求无需用户干预即可授予。我认为 Android 模型是,如果一个请求被认为是“危险的”,它要求用户授予他们对这些所谓的危险权限的应用程序访问权限。

关于android - 未授予 READ_PRIVILEGED_PHONE_STATE 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56711614/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com