Android打开系统相册的问题
来源:互联网 发布:李荣浩戒烟知乎 编辑:程序博客网 时间:2024/05/16 14:09
在Google Nexus 7 ( Version 4.4.2 )平板出现之前,Intent.ACTION_GET_CONTENT打开相册会返回如下形式的Uri :
content://media/external/images/media/3951 ,
使用ContentResolver查询MediaStore.Images.Media.DATA就可以找文件的URL, 然而在Google Nexus 7 上用同样的方法,却是返回如下Uri :
content://com.android.providers.media.documents/document/image:3951,
这时使用ContentResolver就会报一些异常出来,提示说是没有权限(如takePersistableUriPermission等),网上也有一些建议方案,给这个Uri加上相应的权限,不过
效果都不太理想。
在不断搜索,实践的过程,发现在了有一个比较方便高效的解决问题的方法,分享出来,希望遇到同样问题的码友们能快速解决问题,轻松一下,
方案如下:
- Intent intent = new Intent();
- intent.addCategory(Intent.CATEGORY_OPENABLE);
- intent.setType("image/*");
- //根据版本号不同使用不同的Action
- if (Build.VERSION.SDK_INT <19) {
- intent.setAction(Intent.ACTION_GET_CONTENT);
- }else {
- intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
- }
- startActivityForResult(intent, REQUEST_CODE);
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode==REQUEST_CODE) {
- if (null!=data) {
- Uri uri = data.getData();
- //根据需要,也可以加上Option这个参数
- InputStream inputStream = getContentResolver().openInputStream(uri);
- Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
- }
- }
- }
0 0
- Android打开系统相册的问题
- Android打开系统相册的问题
- Android打开系统相册的问题
- android打开系统相册的一些方法
- Android打开系统相册页面
- 打开系统相册并裁剪,而引发的一些问题
- android打开系统相册(解决api19的兼容问题)
- Android打开系统拍照&相册获取头像
- Android使用系统调用相册的时候打开了云相册出现CRASH或者找不到截图程序的解决方案
- Android基础--调用系统相机,打开相册,展示到界面,出现的一些问题Uri为空,data为null,图片错乱问题
- Android基础--调用系统相机,打开相册,展示到界面,出现的一些问题Uri为空,data为null,图片错乱问题
- Android打开系统相机、相册,并进行裁剪图片的工具类CameraUtil,以及相册获取图片注意要点。
- iOS开发:iOS10.2手机系统打开相册遇到的各种显示英文文字的问题
- 打开系统相册裁剪图片,已解决裁剪大图的问题
- android 打开默认的系统相册,或拍照选取图片,并图片裁剪;
- Android4.4打开系统相册返回Null问题
- Android4.4打开系统相册返回Null问题
- iOS 11打开系统相册列表向上偏移问题
- FLASK-WTF,为表单添加样式。
- flash as3读写8字节64位数据ByteArray
- android:clipToPadding和android:clipChildren
- POJ 计算几何入门题目推荐(转)
- Python replace()方法
- Android打开系统相册的问题
- 编程珠玑之第二章习题9
- Nginx 中的 upstream 与 subrequest 机制
- java中的随机数(Math.random()),以及如何产生一个类似于[21,77]区间的随机数。
- Hadoop技术原理总结#
- 加载依赖的jar包在命令行编译和运行java文件
- PHP添加CURL扩展库
- jQuery 使页面滚动到某个 div 处
- iOS开发安全