Kitkat, ошибка при загрузке изображения

Я пытаюсь загрузить изображение. Это хорошо работает, когда я использую API 18 или ниже, но если я использую API 19 (Kitkat), проблема безопасности ocurrs … Я не уверен, как это решить, но Курсор-загрузчик через меня исключение. Я читаю somenting like

http://developer.android.com/guide/topics/providers/document-provider.html#client

Но без хорошего результата. Если вы видели ниже, у меня есть новый путь к файлу изображения, так что я могу справиться с этим?

* STACK_TRACE = java.lang.SecurityException: отказ в разрешении: чтение com.android.providers.media.MediaDocumentsProvider uri content: //com.android.providers.media.documents/document/image%3A1384 из pid = 3632, uid = 10027 Требует android.permission.MANAGE_DOCUMENTS или grantUriPermission () *

CursorLoader cursorLoader = new CursorLoader( context, uri, projection, null, null, null); 

Некоторые разрешения, которые я обнаружил в манифесте

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/> <uses-permission android:name="com.android.vending.BILLING" /> 

Solutions Collecting From Web of "Kitkat, ошибка при загрузке изображения"

Для этого существует простое решение:

  public static final String KITKAT_VALUE = 1002; Intent intent; if (Build.VERSION.SDK_INT < 19){ intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, KITKAT_VALUE); } else { intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(intent, KITKAT_VALUE); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == KITKAT_VALUE ) { if (resultCode == Activity.RESULT_OK) { // do something here } } } 

ПРИМЕЧАНИЕ. Нет необходимости и дополнительных разрешений для этого (модификации манифеста). Только напишите этот код, а затем вы сможете выбирать изображения из «Загрузки» или из «Недавние»,

Я прочитал этот пост, помогите мне написать это.

Галерея Android на KitKat возвращает разные Uri для Intent.ACTION_GET_CONTENT

Также проверьте это

http://developer.android.com/guide/topics/providers/document-provider.html#client

Спасибо искателю.

ПРИМЕЧАНИЕ. Это временное решение, я не мог найти лучшего способа заставить его работать. Но на данный момент я могу сказать, что проблема решена.

Я только что нашел эту ошибку сегодня.

Это сообщенная ошибка для кордовы и KitKat. Вы можете найти подробную информацию здесь https://issues.apache.org/jira/browse/CB-5398

Ошибка возникает, когда выбранный снимок происходит из новых опций KitKat «Недавние», «Загрузки» и т. Д.

Если вы перейдете в приложение Gallery и откройте стандартную галерею, у вас не должно возникнуть никаких проблем.

Это может зависеть от того, откуда приходит ваш uri. Если Uri был возвращен из сборщика файлов, все должны работать без исключений.

Если вы сами построите Ури или сохранили Ури, тогда могут быть проблемы.

Это присуще новой платформе доступа к хранилищу, представленной в Android 4.4 KitKat.

Если пользователь выбирает файлы для открытия в сборщике файлов, система предоставляет разрешение на получение именно этих файлов в вашем приложении. Эти разрешения действительны, пока устройство не перезагружается.

Если Ури сохраняется, тогда права, предоставленные для доступа к Ури, также должны сохраняться. Для получения дополнительной информации смотрите здесь: https://developer.android.com/guide/topics/providers/document-provider.html#permissions