В моем приложении я сохраняю путь изображения в моем SQlite db для дальнейшего использования. Путь, который я получаю,
content://com.android.providers.media.documents/document/image%3A71964
Когда я получаю этот путь из базы данных и пытаюсь получить изображение с этого пути, бросок броузера
java.lang.SecurityException: Permission Denial: opening provider
com.android.providers.media.MediaDocumentsProvider 
from ProcessRecord{42c84ec8 23911:com.gots.gb/u0a248} (pid=23911, uid=10248) 
requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
В соответствии с https://developer.android.com/guide/topics/providers/document-provider.html#permissions Мне нужно сохранить разрешение, добавив следующий код
final int takeFlags = intent.getFlags()
        & (Intent.FLAG_GRANT_READ_URI_PERMISSION
        | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
// Check for the freshest data.
getContentResolver().takePersistableUriPermission(uri, takeFlags);
Когда я добавил этот код в свой класс ImageAdapter, который расширяет броузеры для Android-адаптеров BaseAdapter
08-21 02:14:38.530: W/System.err(24452): java.lang.SecurityException:
No permission grant found for UID 10248 and Uri 
content://com.android.providers.media.documents/document/image:71964
Это важная часть моего кода ImageAdapter
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView ;
    if (convertView == null){
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    }
    else{
        imageView = (ImageView)convertView ;
    }
    InputStream is = null;
    Bitmap bitmap = null ;
    try {
        Log.d(TAG,String.valueOf(list.get(position)));
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        final int takeFlags = intent.getFlags()
                & (Intent.FLAG_GRANT_READ_URI_PERMISSION
                | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
        // Check for the freshest data.
        if (Build.VERSION.SDK_INT >= 19){
            mContext.getContentResolver().takePersistableUriPermission(list.get(position), takeFlags);
        }
        is = mContext.getContentResolver().openInputStream(list.get(position));
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 8;
        bitmap = BitmapFactory.decodeStream(is,null, options);
        is.close();
        imageView.setImageBitmap(bitmap);
        return imageView;
    }
    catch (Exception e) {
        e.printStackTrace();
        return null;
    }
что я делаю неправильно? Благодаря