从图库问题中选择Android kitkat图像

时间:2014-03-03 10:19:28

标签: android uri android-contentresolver

我一直在尝试从Nexus设备库中选择图片。由于在kitkat 4.4中更改了Storage框架,因此我很难实现此功能。我已经参考了这个链接{{3} }

我在图库中获取文件的路径..还解码图像并将其设置为imageView ..但是,一旦我这样做,我的应用程序突然关闭并再次重新连接到服务器并告诉我再次登录..可以有人请告诉我发生这种情况的原因..是否有任何许可可以添加或更多的代码..

这是获取Imagepath的代码..

    Uri originalUri = data.getData();

            final int takeFlags = data.getFlags()
                                & (Intent.FLAG_GRANT_READ_URI_PERMISSION
                                | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            // Check for the freshest data.
            getContentResolver().takePersistableUriPermission(originalUri, takeFlags);

            String id = originalUri.getLastPathSegment().split(":")[1]; 
            final String[] imageColumns = {MediaStore.Images.Media.DATA };
            final String imageOrderBy = null;

            Uri uri = getUri();

            @SuppressWarnings("deprecation")
            Cursor imageCursor = managedQuery(uri, imageColumns,
                  MediaStore.Images.Media._ID + "="+id, null, imageOrderBy);

            if (imageCursor.moveToFirst())
            {
                picturepath = imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.DATA));
            }
            Bitmap b=decodeSampledBitmapFromFile(picturepath, 175, 175);
            imgToBeUploaded.setImageBitmap(b);
            Toast.makeText(StartingActivity.this, picturepath, Toast.LENGTH_SHORT).show();

谢谢和问候。

1 个答案:

答案 0 :(得分:0)

很可能你因为这行

而得到java.lang.SecurityException
getContentResolver().takePersistableUriPermission(originalUri, takeFlags);

尝试捕捉异常并且应该有效。