Flutter - проблема с разрешением, вызывающая сбой - PullRequest
0 голосов
/ 13 июля 2020

Я использую пакет contacts_service в своем приложении flutter (https://pub.dev/packages/contacts_service). Я хочу запустить это приложение на Android и IOS, поэтому я добавил его в свой файл Info.plist.

<key>NSContactsUsageDescription</key>  
<string>This app requires contacts access to function properly.</string>  

Я разрабатываю это приложение на своем android устройстве, поэтому я также добавил разрешения для AndroidManifest. xml. Я сделал это выше section.

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

Но приложение вылетает во время выполнения этой строки кода.

contacts = await ContactsService.getContacts();

В сообщении об ошибке говорится:

вызвано: java. lang.SecurityException: Permission Denial: открытие провайдера com. android .providers.contacts.ContactsProvider2 из ProcessRecord {f7cf96e 11239: com.example.smsresponder / u0a189} (pid = 11239, uid = 10189) требует android .permission. READ_CONTACTS или android .permission.WRITE_CONTACTS

Кроме того, я заметил, что Android не спрашивает у меня разрешения для этого приложения при его установке. Итак, я предполагаю, что я сделал что-то не так с предоставлением разрешений, но я понятия не имею, что именно. Пожалуйста, помогите

1 Ответ

1 голос
/ 13 июля 2020

Вам все равно нужно запросить у пользователя разрешение, чтобы приложение могло получить доступ к контактам устройства. Недостаточно объявить, что ваше приложение будет использовать эти разрешения.

Android> = 6 и iOS требует, чтобы ваше приложение запрашивало конфиденциальные разрешения во время выполнения.

Примечание contacts_service не обрабатывает процесс запроса и проверки разрешений. Чтобы проверить и запросить разрешение пользователя на доступ к контактам, попробуйте использовать следующие плагины: flutter_simple_permissions или permission_handler.

...