2017-02-14 3 views
-2

Мне нужно отобразить разрешение на запрос (чтение внешнего хранилища) во время выполнения. без разрешения мое приложение аварийно завершает работу.Как отобразить запрос разрешения с api 14

+0

Права на Runtime не существуют на устройствах уровня 14 уровня. Вы просто запрашиваете разрешение в манифесте, как это сделали разработчики в течение нескольких лет. Если у вас возникли проблемы с использованием элемента '', задайте отдельный вопрос о переполнении стека, в котором вы предоставите [mcve], демонстрирующий, как вы запрашиваете разрешение, полную трассировку стека Java вашего сбоя и код, который вызывает сбой. – CommonsWare

+0

Скорее всего, вы получите полезный ответ на SO, если вы предоставите некоторый код проблемы, дополнительную информацию об ошибках и просили ли вы что-либо (чтобы избежать дублирования от каких-либо предложений). – ethrbunny

ответ

1

В API 14 вам не нужно делать запрос.

Просто поместите в манифесте выше <application> разделе:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
1

Запрос разрешения во время выполнения не поддерживается с 14 уровне API, он не поддерживается до уровня API 23.

Если вы» перезапустите приложение из Android Studio на устройстве или эмуляторе, где приложение уже установлено, ваше приложение не будет запрашивать разрешения при его запуске. Если вы случайно удалили разрешение, вам нужно будет вручную предоставить разрешение через Диспетчер приложений на устройстве или эмуляторе.

Чтобы предотвратить первоначальный сбой, вы можете обернуть нарушивший вызов в проверку разрешений.

if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_EXTERNAL_STORAGE) 
             == PackageManager.PERMISSION_GRANTED) { 
    // READ DATA 
} 

Надеюсь, это поможет!

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