Для устройств Android с API 23 или выше, как я могу предоставить внешние разрешения на хранение без перезапуска приложения (вроде как музыкальная библиотека пользователя, загружаемая в Google Play Музыку за один сеанс) ? Я знаю, что эта проблема была рассмотрена несколько раз здесь, в SO, но пока я не нахожу удачи.Предоставление внешних разрешений на хранение без перезапуска приложения
Вот разрешения в моем файле манифеста:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // API 23
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
return; // Included here to prevent the app from crashing.
}
}
/**
* CODE HERE FOR INSTANTIATIONS AND SUCH.
*/
}
... Так как сейчас, мне нужно перезапустить приложение для разрешения пойти через (и экземпляры MainActivity и т. д.) после Принимая разрешения от начального всплывающего окна.
Спасибо, кучка.
«Мне нужно перезапустить приложение для разрешения пройти» - нет, вы этого не делаете. Переместите «КОД ЗДЕСЬ ДЛЯ УЧРЕЖДЕНИЙ И ТАКИХ». в другой метод. Вызовите этот метод из 'onCreate()', если у вас уже есть разрешения уже в этот момент. Также вызывается этот метод из 'onRequestPermissionsResult()', если пользователь согласился на эти разрешения. См. [Этот пример проекта] (https://github.com/commonsguy/cw-omnibus/tree/master/Files/FilesEditor), например. – CommonsWare