在 Android M 上请求麦克风许可

Request permission for microphone on Android M

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

<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/>,因为它们表明您想要 创建 新权限而不是 使用它们。

然后请求权限只需这样做:

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

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

}