Android 6.0 требует перезагрузки после предоставления разрешения пользователя во время выполнения

Я следую этому руководству, чтобы узнать разрешения для Android 6.0, https://developer.android.com/preview/features/runtime-permissions.html#support-lib

Однако мне нужно уничтожить мое приложение и перезапустить его, чтобы на самом деле иметь разрешение WRITE_EXTERNAL_STORAGE, иначе он не сработает для создания файла.

Я что-то пропустил?

if(ActivityCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED){
    ActivityCompat.requestPermissions((MainActivity)mContext,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},MY_PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE);
} else {
    Intent i = new Intent(v.getContext(), ServiceDownload.class);
    v.getContext().startService(i);
}

Файл создается в службе, и это эмулятор не является реальным устройством.

Ответ 1

Это ошибка, о которой уже упоминалось, но я нашел в этом вопросе, что вы можете добавить эту строку:

android.os.Process.killProcess(android.os.Process.myPid());

после получения вашего разрешения. Это не реальное решение, просто помогает избежать сбоев.