Cordova - 在XIAOMI设备中获取麦克风访问权限

时间:2018-05-14 12:19:32

标签: android cordova cordova-plugins microphone xiaomi

我的要求是检查应用是否已授予麦克风访问权限。如果没有,那么获得访问权限。我的应用程序是使用Cordova构建的。我使用了https://github.com/edimuj/cordova-plugin-audioinputhttps://github.com/dpa99c/cordova-diagnostic-plugin它们适用于除XIAOMI设备之外的Android和iOS设备。在XIAOMI设备中,我总是获得许可,但事实并非如此。有没有我可以使用的Cordova插件,它也适用于XIAOMI设备?

使用音频输入插件的示例代码

// First check whether we already have permission to access the microphone.
window.audioinput.checkMicrophonePermission(function(hasPermission) {
    if (!hasPermission) {
        // Ask the user for permission to access the microphone
        window.audioinput.getMicrophonePermission(function(hasPermission) {
            if (!hasPermission) {
                scope.showMicrophoneDeniedMsg = true;
            }
        });
    }
});

使用诊断插件的示例代码

cordova.plugins.diagnostic.getMicrophoneAuthorizationStatus(function(status) {
    if (status === cordova.plugins.diagnostic.permissionStatus.GRANTED) {
        console.log("Microphone use is authorized");
    } else {
        console.log("Microphone use is denied");
        cordova.plugins.diagnostic.requestMicrophoneAuthorization(function(status) {
            if (status === cordova.plugins.diagnostic.permissionStatus.GRANTED) {
                console.log("Microphone use is authorized");
            }
        }, function(error) {
            console.error(error);
            console.log("Microphone use is denied 1");
        });
    }
}, function(error) {
    console.error("The following error occurred: " + error);
});

1 个答案:

答案 0 :(得分:0)

找到了问题所在。我像

一样立即在config.xml中添加了插件
<plugin name="cordova-plugin-audioinput" spec="1.0.1"/>

现在我分别为iOS和Android添加了

<platform name="ios">
    <plugin name="cordova-plugin-audioinput" spec="1.0.1"/>
</platform>

<platform name="android">
    <plugin name="cordova-plugin-audioinput" spec="1.0.1"/>
</platform>

像魅力一样工作。