Я пытаюсь скопировать мою базу данных SQLite во «внешнее» хранилище в качестве средства резервного копирования файла базы данных. Оттуда пользователь может взять файл .db и перейти в безопасное место.
Следуя документации разработчика Android по получению разрешения на WRITE_EXTERNAL_STORAGE, я ввел дословно показанный код и прошел через него с помощью отладчика. (Я изменил READ_CONTACTS на WRITE_EXTERNAL_STORAGE)
Сначала он выполнит checkSelfPermission и пропустит shouldShowRequestPermissionRationale при переходе к requestPermissions сильный>. Затем мне выдается всплывающее окно с запросом моего разрешения.
Если я это отрицаю, то при втором прогоне он снова перейдет к checkSelfPermission, а затем перейдет к shouldShowRequestPermissionRationale strong>, но пропустите requestPermissions и прекратите запрашивать разрешение снова, как указано в документации Android.
Мои вопросы:
- Должен ли я добавить вызов requestPermissions в блоке shouldShowRequestPermissionRationale if (), чтобы он снова спрашивал ? Или есть другой способ?
- Если я хочу объяснить причину или рациональную причину, по которой требуется разрешение, должен ли я реализовать собственное окно AlertDialog? Или есть метод установки для повторного запроса AlertBox, который я еще не обнаружил, чтобы предоставить системе мое объяснение?
До сих пор все, что я делал при написании этого приложения, было опытом обучения. Я хорошо провожу время.
РЕДАКТИРОВАТЬ: у меня есть
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
установлен в моем Манафесте.