android - 在 Android M 上请求麦克风权限

标签 android android-permissions

我需要在 Android M 上使用麦克风。我尝试在 list 中设置权限组,但无法正常工作。这是 list 中的内容:

<permission-group android:name="android.permission-group.MICROPHONE"
    android:label="label"
    android:icon="@mipmap/day_icon"
    android:priority="360"/>

<permission android:name="android.permission.MICROPHONE"
    android:permissionGroup="android.permission-group.MICROPHONE"
    android:protectionLevel="dangerous"
    android:label="label" />

我也试过通过代码获取访问权限:

if (ContextCompat.checkSelfPermission(getActivity(),
            Manifest.permission_group.MICROPHONE)
            != PackageManager.PERMISSION_GRANTED) {

        ActivityCompat.requestPermissions(getActivity(),
                new String[]{Manifest.permission_group.MICROPHONE},
                REQUEST_MICROPHONE);

    }

不显示授予访问权限的警报。

我仍然无法使用麦克风。有人知道如何获得麦克风的许可吗?

注意:这仅不适用于 Android M

最佳答案

要请求麦克风,您应该请求 Manifest.permission.RECORD_AUDIO而不是权限组 Manifest.permission_group.MICROPHONE .

因此,删除标签 <permission/><permission-group/>在 list 中,因为它们表明您想要创建新权限而不是使用它们。

然后请求权限就这样做:

if (ContextCompat.checkSelfPermission(getActivity(),
        Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {

    ActivityCompat.requestPermissions(getActivity(),
            new String[]{Manifest.permission.RECORD_AUDIO},
            REQUEST_MICROPHONE);

}

关于android - 在 Android M 上请求麦克风权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270253/

相关文章:

android - 长按安卓

android - 未调用 CvCameraViewListener 接口(interface)的 OnCameraFrame 方法

java - 如何将外部图像加载到 Android Toast 中?

android - 应用程序启动前崩溃 : SecurityException: Permission Denial: INTERACT_ACROSS_USERS_FULL

android - 每个 Google Play 服务组件需要哪些权限?

android - 如何在 Android 中分配权限组名称

android - 如何以编程方式打开 Android 6.0 (Marshmallow) 上特定应用的权限屏幕?

android - 如何从android中的联系人姓名获取联系人的电话号码

android - 执行条件 : Package unavailable for Task

react-native - 如何使用 onRequestPermissionsResult 处理 React Native Android 模块中的权限?