我的要求是检查应用程序是否授予了麦克风访问权限。如果没有,则获得访问权限。我的应用程序是使用 Cordova 构建的。我用过 https://github.com/edimuj/cordova-plugin-audioinput,https://github.com/dpa99c/cordova-diagnostic-plugin 它们适用于Android和iOS设备,但小米设备除外。在小米设备中,我总是获得已经授予的权限,但事实并非如此。我可以使用任何也可以在小米设备中使用的 Cordova 插件吗?
使用音频输入插件的示例代码
// 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);
});
找到问题所在。我在配置中添加了插件.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>
就像一个魅力。