首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在config.xml文件中添加使用权限后离子型应用程序崩溃

在config.xml文件中添加使用权限后离子型应用程序崩溃
EN

Stack Overflow用户
提问于 2020-02-14 15:11:52
回答 1查看 3.5K关注 0票数 1

通过向MODIFY_AUDIO_SETTINGS添加config.xml权限,我的应用程序将在运行后崩溃。

代码语言:javascript
复制
<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>

然后运行app:

代码语言:javascript
复制
 ionic cordova run android -- device

此外,我还试图获得离子android许可。

代码语言:javascript
复制
 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的许可

代码语言:javascript
复制
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返回假的MODIDY_AUDIO_SETTINGS权限。

代码语言:javascript
复制
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% solve========================>

在将权限手动添加到AndroidManifest.xml之后。应用程序显示弹出请求允许。如何将此权限添加到confix.xml而不是直接添加到AndroidManifest.xml?正如我在向config.xml添加此权限时所说的那样。应用程序不会启动。

代码语言:javascript
复制
<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" />
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-15 07:51:22

该问题通过向< config-file >标记添加权限来解决。

在config.xml内部:

代码语言:javascript
复制
<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服务器,然后重新运行应用程序。

代码语言:javascript
复制
ionic cordova run android --device

现在,在发送许可请求时,应用程序会弹出。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60228926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档