2015-09-27 2 views
0

Мое приложение должно получить доступ к хранилищу пользователя в непосредственной близости от каждого действия. Как я могу получить доступ к хранилищу без запроса приложения при каждом запуске приложения для получения доступа к нему с новой моделью разрешения Android M? (Читать и писать)Android M, не спрашивайте каждый старт для разрешения на хранение

Спасибо!

+0

Вам нужно только спросить, не имеете ли вы уже разрешение. Какова ваша конкретная проблема? – CommonsWare

+0

Чтобы пользователю было предложено при каждом запуске приложения предоставить доступ к памяти, чтобы иметь возможность делать что-либо –

ответ

1

Если вы не хотите запрашивать пользователя «при каждом запуске приложения, чтобы предоставить доступ к памяти, чтобы иметь возможность делать что-либо», тогда не делайте этого. Позвоните только 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 (например, , нажимает элемент панели действий), и у вас еще нет разрешения.

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