Cordova - Получите доступ к микрофону в устройствах XIAOMI - PullRequest
0 голосов
/ 14 мая 2018

Мое требование - проверить, имеет ли приложение доступ к микрофону или нет. Если нет, то получите доступ. Мое приложение построено с использованием Cordova. Я использовал https://github.com/edimuj/cordova-plugin-audioinput и https://github.com/dpa99c/cordova-diagnostic-plugin, они работают для устройств Android и iOS, за исключением устройств XIAOMI. В устройствах 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 голосов
/ 24 июля 2018

Нашел в чем проблема. Я сразу добавил плагин в 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>

Работает как шарм.

...