将使用权限添加到config.xml文件后,Ionic应用程序崩溃 [英] Ionic app crash after adding use permission to config.xml file
问题描述
通过向config.xml添加MODIFY_AUDIO_SETTINGS权限,我的应用在运行后将崩溃.
By adding MODIFY_AUDIO_SETTINGS permission to config.xml, my app will crash after run.
<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
我也尝试获取离子android权限
Also i try for ionic android permission
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)
);
但是没有弹出窗口要求用户许可. 最后,我直接使用了科尔多瓦权限
But no popup show to ask user for permission. And in the end i used cordova permission directly
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权限返回false.
i can get permission of camera or record_audio But requestPermission return false for MODIDY_AUDIO_SETTINGS permission.
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%解决率========================>
90% solve========================>
在向AndroidManifest.xml手动添加权限之后. 应用程序显示弹出窗口以立即请求权限. 我如何才能将此权限添加到confix.xml而不是直接添加到AndroidManifest.xml? 正如我所说的,当我将此权限添加到config.xml中时.应用程序无法启动.
after adding permission manually to AndroidManifest.xml. application show popup to ask permisson now. how can i add this permission to confix.xml instead of directly to AndroidManifest.xml? as i said when i add this permission to config.xml. application wont start.
<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" />
推荐答案
通过向<配置文件>标签.
The issue solved by adding permission to < config-file > tag.
在config.xml内部:
inside config.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服务器并重新运行该应用程序
unplug/plug again usb device or reset adb server and re run the application
ionic cordova run android --device
现在,在发送许可请求时,应用程序显示弹出窗口.
and now, application show popup when sending request for permission.
这篇关于将使用权限添加到config.xml文件后,Ionic应用程序崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!