Если вы не хотите запрашивать пользователя «при каждом запуске приложения, чтобы предоставить доступ к памяти, чтобы иметь возможность делать что-либо», тогда не делайте этого. Позвоните только requestPermissions()
, если checkSelfPermission()
возвращает PERMISSION_DENIED
.
@Override
public void onCreate(Bundle icicle) {
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==
PackageManager.PERMISSION_GRANTED) {
init();
}
else {
requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
REQUEST_STORAGE);
}
}
(нативный API Level 23 методов показано, вы можете использовать ContextCompat and
ActivityCompat` для обратной совместимости)
Или вызывать только requestPermissions()
если пользователь делает что-то положительное в пользовательском интерфейсе, который нуждается в WRITE_EXTERNAL_STORAGE
(например, , нажимает элемент панели действий), и у вас еще нет разрешения.
Вам нужно только спросить, не имеете ли вы уже разрешение. Какова ваша конкретная проблема? – CommonsWare
Чтобы пользователю было предложено при каждом запуске приложения предоставить доступ к памяти, чтобы иметь возможность делать что-либо –