Android基于红米系列手机读取本地图片路径失败的解决方案
最近 公司的项目上有 扫描二维码功能,当然必不可少的就会有读取本地二维码需求。首先就是跳转到本地相册,如下代码:
/*** show images in the android device media store*/public static void showPictures(Activity a,int type){Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT);String IMAGE_UNSPECIFIED = "image/*";innerIntent.setType(IMAGE_UNSPECIFIED); a.startActivityForResult(innerIntent, type);}
在 onActivityResult中获取图片路径,
Uri uri = data.getData();String strPath = uri.getPath();
发现得到的path路径值不是图片在我们手机上的历经,在根据这个路径值获取图片或得到null,不知为啥,
这在大多数手机一般都没问题,但是我用的是红米手机,巨坑的手机之一,之前一直觉得搞开发魅族手机很坑了,原来小米也算其一啊。
然后再onActivityResult做如下处理,结果是二维码,和非二维码图片都可以扫描,并做出相应的处理;
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);Logger.i("test", "---------------------3---------------");if (data != null) {mProgress = new ProgressDialog(CaptureActivity.this);mProgress.setMessage("已扫描,正在处理...");mProgress.setCancelable(false);mProgress.show();final ContentResolver resolver = getContentResolver();Uri uri = data.getData();if (requestCode == TypeCodeing.REQUESTCODE_CAPTURE&& resultCode == RESULT_OK) {if (!TextUtils.isEmpty(uri.getAuthority())) {Logger.e(this, "url=" + data.getData() + "=resolver=" + resolver);Cursor cursor = resolver.query(uri, new String[]{MediaStore.Images.Media.DATA}, null,null, null);if (cursor != null) {if (cursor.moveToFirst()) {photoPath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));cursor.close();}} else {ToastUtil.show("啥也没扫出来,");mProgress.dismiss();return;}}else{photoPath = uri.getPath();}new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubLooper.prepare();String result = parsLocalPic(photoPath);Logger.e(this, "result=" + result + "=photoPath="+ photoPath);if (result != null) {if (handler == null) {handler = new CaptureActivityHandler(CaptureActivity.this);}Message msg = new Message();msg.obj = result;msg.what = R.id.decode_succeeded;handler.sendMessageDelayed(msg, 1000);} else {if (mProgress != null && mProgress.isShowing()) {mProgress.dismiss();}ToastUtil.show("啥也没扫出来,要不换张图片试试( •̥́ ˍ •̀ू )");}Looper.loop();}}).start();}} else {Logger.e(this, "data==" + data);ToastUtil.show("empty");return;}}
ok 搞定
Android基于红米系列手机读取本地图片路径失败的解决方案相关推荐
- 【转】Android 4.4前后版本读取图库图片和拍照完美解决方案
http://blog.csdn.net/zbjdsbj/article/details/42387551 4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4 ...
- Android 4.4前后版本读取图库图片和拍照完美解决方案
4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4,如果使用上面pick的原生方法来选图,返回的uri还是正常的,但如果用ACTION_GET_CONTENT ...
- 基于springboot架构的读取excel 图片并自动上传
基于springboot架构的读取excel 图片并自动上传 excel 图片上传 页面准备 comment.html 逻辑处理准备 控制类CommentController.java 接口类ICom ...
- JAVA读取本地图片并展示
代码如下: //读取本地图片输入流 FileInputStream inStream = new FileInputStream("D:/image/123.jpg");//byt ...
- android 点动态显示图片,Android用RecyclerView实现动态添加本地图片
本文介绍了Android用RecyclerView实现动态添加本地图片,分享给大家,具体如下: 简单介绍一下用法: 1.跳转到图片选择页面: Intent intent = new Intent(Pa ...
- ue4加载本地图片_UE4 读取本地图片
我这里,不能将图片全放工程之中,需要在外部在加载图片资源,再来使用 1.通过本地图片路径,获取图片,并将其数据转为uint类型的数组 #pragma region 通过本地图片转换成UTexture2 ...
- js小学生图区_js读取本地图片并显示
版权声明:本文为博主原创文章,未经博主允许不得转载. 根据项目需要,需要选择本地图片并显示在页面上,然后上传至服务器.因为自身刚刚接触js,所以比较生疏,碰到问题吼,幸好有强大的网络,搜索很多有用的资 ...
- java读取本地图片及路径
手贱打算用java读取本地图片,发现各种问题,之前使用python,发现还是python太厉害 如果打算用文件的形式读取图片,注意要对文件流做异常处理,还有java的输出语句,连接符之间的关系.最后成 ...
- py读取本地图片并返回图片给前端base64格式
py读取本地图片并返回图片给前端base64格式 直接贴代码,有用请收藏 from fastapi import FastAPI from get90V import resBody, getRewr ...
最新文章
- 画布Canvas的使用
- Web前端经典面试试题(二)
- 利用css3实现jQuery中的slideDown和slideUp效果
- 鸿蒙系统突破,华为解锁新成就!新系统用户突破1亿,鸿蒙系统也传来了新消息...
- Java 判断操作系统类型(适用于各种操作系统)
- Visual Studio 2008在设计视图和代码视图切换的快捷键F7
- java date不要秒_java – 比较日期忽略Joda中DateTime的秒和毫秒时刻
- ecs服务器数据迁移_如何非常方便地从Windows文件服务器把数据完整地迁移到ONTAP Select...
- python数据结构与算法分析_数据结构和算法分析
- NET 对象生命周期
- (72)FPGA面试题-使用不同的代码实现2-4译码器?使用if语句
- 学习python遇到的一些有趣点(每日更新)
- 54 计算机与信息科学类,计算机与信息科学类专业包括哪些
- 2021-09-06Cross-product transformation
- filenet分布式部署
- 上网账号口令怎么获取_怎么从路由器里获取上网帐号和密码
- 串口线的交叉直连之痛
- 髂嵴最高点在哪里_两侧髂嵴最高点连线约平 ( )
- 安全面试之WEB安全(二)
- springboot+druid+dynamic-datasource+mysql数据库密码加密