У меня возникла проблема, которую я нашел причину, но не смог ее решить.
У меня происходит сбой приложения Cordova на Android 8.0.0.Я сделал logcat, который показал, что приложение пытается получить доступ к контактам.
Странно то, что у меня нет плагина для контактов и использования контактов в моем приложении.
В logcat у меня есть эта ошибка:
12-11 17: 29: 42.094 E / AndroidRuntime (5609): java.lang.RuntimeException: java.lang.RuntimeException: java.lang.SecurityException: отказ в разрешении: открытие провайдераили android.permission.WRITE_CONTACTS
Я попробовал все, добавил
<config-file parent="/manifest" target="AndroidManifest.xml">
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
</config-file>
к моему config.xml
, он хорошо добавляет AndroidManifest.xml при сборкено я все еще получил ошибку.
Я пробовал оба тега uses-permission
и uses-permission-sdk
, как указано здесь , но без удачи.
Моя версия Cordova-Android является6.2.3
Я также попытался использовать разрешение cordova-plugin-, как в слушателе устройства:
var permissions = cordova.plugins.permissions;
permissions.requestPermission(
permissions.READ_CONTACTS,
function(success) {},
function(error) {}
);
permissions.requestPermission(
permissions.WRITE_CONTACTS,
function(success) {},
function(error) {}
);
Но ничего не изменилось.Приложение вылетает до того, как событие «deviceready» запускается, поэтому я ничего не могу сделать во время выполнения.
Как указано здесь , если я изменю targetSdkVersion ниже 23 (даже 25),сбой исчезает, но я больше не могу загрузить его в Google Play, так как игровая консоль не принимает targetSdkVersion <26. </p>
Кроме того, если я вручную разрешаю доступ к контакту из настроек приложения и принудительно останавливаю и перезапускаюприложение, это работает.Это сводит меня с ума.
Некоторая помощь в этом была бы очень признательна.
Спасибо всем, кто найдет время, чтобы прочитать или ответить.