【问题标题】:Run time permission not working from API Level 28运行时权限在 API 级别 28 中不起作用
【发布时间】:2019-11-16 14:41:57
【问题描述】:

我正在使用此代码来请求 CALL_PHONE 的权限,它在 api 级别 28 以下工作,但在此之上不工作。如果未授予权限,则低于 api 级别 28 将显示授予权限的对话框,但高于 28 没有弹出对话框,我只收到 toast 消息。

if (ContextCompat.checkSelfPermission(ProcessingCallActivity.this, Manifest.permission.CALL_PHONE)
                                        != PackageManager.PERMISSION_GRANTED) {
                                    // Permission is not granted
                                    finish();
                                    ActivityCompat.requestPermissions( ProcessingCallActivity.this, new String[]{Manifest.permission.CALL_PHONE},REQUEST_PHONE_CALL);
                                    Toast.makeText(ProcessingCallActivity.this, "Call permission needed", Toast.LENGTH_SHORT).show();
                                }

【问题讨论】:

    标签: java android android-permissions runtime-permissions


    【解决方案1】:

    在清单中添加以下权限

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

    去掉那个finish()语句

    【讨论】:

    • 当然,我已经添加了权限。很抱歉删除 finish() 语句没有用。
    • 你使用的片段或活动是什么?
    • 检查你的 targetSdkVersion 28 和 compileSdkVersion 28
    • 是活动。并且目标和编译 Sdk 版本都是 28。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2017-12-27
    • 2018-12-27
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    相关资源
    最近更新 更多