1

У меня есть приложение, использующее AbstractThreadedSyncAdapter для синхронизации календаря. Мы работаем над сборкой для android M. У меня есть запросы на разрешение календаря, работающие во всех случаях, за исключением случаев, когда у пользователя уже есть настройка синхронизации, а затем обновляет наше приложение от сборки без андроида M до новой сборки M.Обновление приложения Android M и разрешение для адаптера синхронизации

A] Я могу проверить разрешение при первом открытии приложения после его обновления, но он может не открывать приложение в течение нескольких недель, в течение которого его календарь не будет синхронизироваться.

B] Я прохожу к следующей опции: Служба фона синхронизации будет начать деятельность, которая отображает объяснение, почему нам нужно разрешение календаря из-за обновление до М.

Моего вопроса: ли B ] лучший вариант?

+1

Просто обратите внимание, что обновление приложений с таргетингом <23 в целевой API 23 начнется с любых ранее принятых разрешений, предоставленных по умолчанию. Это не устраняет проблему, когда пользователь вручную отключает разрешение на экране настроек, поэтому вам все равно придется обрабатывать этот случай. – ianhanniballake

+0

Спасибо. У вас есть источник для этого? Причина, по которой я спрашиваю, до 23 лет, не существует понятия «принятого разрешения», насколько я знаю, поэтому я даже не уверен, насколько это технически возможно. Вы имеете в виду все, что было в манифесте, если бы предыдущая версия была автоматически предоставлена? – OlivierM

+1

Исправить. Кнопка в Play Маркете в диалоговом окне «Разрешения» при использовании разрешений времени установки (т. Е. Таргетинг на ianhanniballake

ответ

2

Is B] лучший вариант?

ИМХО, №. Поднимите Notification, предупредив пользователя о необходимости предоставления разрешения. Когда пользователь нажимает на Notification, , затем пройдите requestPermissions() и попросите у пользователя разрешения, которые вам нужны. Если пользователь игнорирует Notification, напомните им периодически (например, один раз в день) новым Notification.

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

Смежные вопросы