android - 我无法在运行时权限中显示 Manifest.permission.CALL_PHONE

标签 android permissions

我正在我的应用程序中实现运行时权限,但我无法做到这一点来显示 CALL_PHONE 的权限。我需要显示两个权限,read_contact 和 call_phone。我可以完美显示 read_contact 但不能显示 call_phone 权限。

我正在使用 AVD 模拟器对其进行测试。

一些帮助将不胜感激!

这是我的代码:

      callPesmission.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestCallPhonePermission();
            }
        });

        contactPesmission.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestContactsPermission();
            }
        });


 private void requestContactsPermission() {
        String locationPermission = Manifest.permission.READ_CONTACTS;
        int hasPermission = ContextCompat.checkSelfPermission(getActivity(), locationPermission);
        String[] permissions = new String[] { locationPermission };
        if (hasPermission != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(permissions, REQUEST_CONTACTS);
        } else {
            Toast.makeText(getActivity(), "We already have persmission", Toast.LENGTH_SHORT).show();
        }
    }

    private void requestCallPhonePermission() {
        String callPermission = Manifest.permission.CALL_PHONE;
        int hasPermission = ContextCompat.checkSelfPermission(getActivity(), callPermission);
        String[] permissions = new String[] { callPermission };
        if (hasPermission != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(permissions, REQUEST_CALL_PHONE);
        } else {
            Toast.makeText(getActivity(), "We already have persmission", Toast.LENGTH_SHORT).show();
        }
    }

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode) {
            case REQUEST_CONTACTS:
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(getActivity(), "READ_CONTACTS GRANTED", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getActivity(), "READ_CONTACTS DENIED", Toast.LENGTH_SHORT).show();
                }
                break;
            case REQUEST_CALL_PHONE:
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(getActivity(), "CALL_PHONE GRANTED", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getActivity(), "CALL_PHONE DENIED", Toast.LENGTH_SHORT).show();
                }
                break;
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

最佳答案

我忘记在 list 中添加权限.....

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

关于android - 我无法在运行时权限中显示 Manifest.permission.CALL_PHONE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38222739/

相关文章:

android - 如何使用 Retrofit 2 获取 API 请求/响应时间

Android Firebase - 计算列表中某个值出现的总数

android - 适用于 Android 的简单增强现实 API

php - 权限组无法正常工作

android - 排序的联系人列表有重复项,为什么?

Android 应用程序签名 : Proguard returned with error code 1. 查看控制台

android - 使用 LocationManager 时请求权限

ASP.NET 应用程序无法写入文件夹

database - Microsoft Access 2013 字段权限

node.js - 在 redux 中处理权限