首页 > 解决方案 > ionic 4: android 权限在 prod 构建后不起作用

问题描述

我正在使用@ionic-native/android-permissions。我在 app.component.ts 中的代码:

this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.RECORD_AUDIO).then(
          (result)=>{   
       if(!result.hasPermission)
       {
         this.androidPermissions.requestPermissions(
           [this.androidPermissions.PERMISSION.RECORD_AUDIO, 
             this.androidPermissions.PERMISSION.GET_ACCOUNTS]
            ).then(()=>{
             // this.rootPage = HomePage;
             window.location.reload();
            });

   }
     });

当我这样做时它正在工作:

离子科尔多瓦运行android

或者

离子科尔多瓦构建android

或者

离子科尔多瓦构建 android --release

但是,如果我添加 --prod,该应用程序不会请求许可。IE :

离子科尔多瓦运行 android --prod

或者

离子科尔多瓦构建 android --prod --release

所以设备麦克风不适用于该应用程序。

标签: androidcordovaionic-frameworkionic4

解决方案


我遇到了这个问题,我通过向 config.xml 添加权限来解决它,然后弹出窗口将显示并询问客户端的权限。 向 config.xml 添加权限

<platform name="android">
....
<config-file parent="/manifest" target="AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">
    <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>

推荐阅读