Ioni c app cra sh после добавления разрешения на использование в файл конфигурации. xml - PullRequest
0 голосов
/ 14 февраля 2020

Добавив разрешение MODIFY_AUDIO_SETTINGS в конфигурацию. xml, мое приложение обработает sh после запуска.

<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/uses-permission" xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
</edit-config>

Затем запустите приложение:

 ionic cordova run android -- device

Также я пытаюсь ioni c android разрешение

 import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';

 this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
  result =>console.log('Haspermission?',result.hasPermission),
  err =>this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA)
);

Но всплывающее окно не запрашивает у пользователя разрешения. И, наконец, я использовал разрешение Cordova напрямую

ionic cordova plugin add cordova-plugin-android-permissions

declare var cordova:any
var permissions = cordova.plugins.permissions;
permissions.requestPermission(permissions.RECORD_AUDIO, successCallback, errorCallback);

Я могу получить разрешение камеры или record_audio Но requestPermission возвращает false для разрешения MODIDY_AUDIO_SETTINGS.

permissions.requestPermission(permission.MODIDY_AUDIO_SETTINGS, success, error);

function error() {
    resolve(false);
}

function success(status) {
  if (status.hasPermission) {  // <-- status.hasPermission is false here
     resolve(true);
  } else {
    resolve(false);
  }
}

90% решают ===============================>

после добавления разрешения вручную в AndroidManifest. xml. всплывающее окно приложения, чтобы спросить разрешение сейчас. Как я могу добавить это разрешение в Confix. xml вместо непосредственно в AndroidManifest. xml? как я уже сказал, когда я добавлю это разрешение в конфигурации. xml. приложение не запустится.

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.microphone" android:required="true" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

1 Ответ

0 голосов
/ 15 февраля 2020

Проблема решена путем добавления разрешения к тегу .

внутри конфигурации. xml:

<platform name="android">
    ....
    <config-file parent="/manifest" target="AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-feature android:name="android.hardware.camera" android:required="true" />
        <uses-feature android:name="android.hardware.microphone" android:required="true" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    </config-file>
    ....
</platform>

снова отключите / подключите устройство USB или перезагрузите сервер adb и перезапустите приложение

ionic cordova run android --device

, и теперь, при отправке запроса на разрешение, всплывающее окно приложения отображается.

...