最近 公司的项目上有 扫描二维码功能,当然必不可少的就会有读取本地二维码需求。首先就是跳转到本地相册,如下代码:

 /*** 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基于红米系列手机读取本地图片路径失败的解决方案相关推荐

  1. 【转】Android 4.4前后版本读取图库图片和拍照完美解决方案

    http://blog.csdn.net/zbjdsbj/article/details/42387551 4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4 ...

  2. Android 4.4前后版本读取图库图片和拍照完美解决方案

    4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4,如果使用上面pick的原生方法来选图,返回的uri还是正常的,但如果用ACTION_GET_CONTENT ...

  3. 基于springboot架构的读取excel 图片并自动上传

    基于springboot架构的读取excel 图片并自动上传 excel 图片上传 页面准备 comment.html 逻辑处理准备 控制类CommentController.java 接口类ICom ...

  4. JAVA读取本地图片并展示

    代码如下: //读取本地图片输入流 FileInputStream inStream = new FileInputStream("D:/image/123.jpg");//byt ...

  5. android 点动态显示图片,Android用RecyclerView实现动态添加本地图片

    本文介绍了Android用RecyclerView实现动态添加本地图片,分享给大家,具体如下: 简单介绍一下用法: 1.跳转到图片选择页面: Intent intent = new Intent(Pa ...

  6. ue4加载本地图片_UE4 读取本地图片

    我这里,不能将图片全放工程之中,需要在外部在加载图片资源,再来使用 1.通过本地图片路径,获取图片,并将其数据转为uint类型的数组 #pragma region 通过本地图片转换成UTexture2 ...

  7. js小学生图区_js读取本地图片并显示

    版权声明:本文为博主原创文章,未经博主允许不得转载. 根据项目需要,需要选择本地图片并显示在页面上,然后上传至服务器.因为自身刚刚接触js,所以比较生疏,碰到问题吼,幸好有强大的网络,搜索很多有用的资 ...

  8. java读取本地图片及路径

    手贱打算用java读取本地图片,发现各种问题,之前使用python,发现还是python太厉害 如果打算用文件的形式读取图片,注意要对文件流做异常处理,还有java的输出语句,连接符之间的关系.最后成 ...

  9. py读取本地图片并返回图片给前端base64格式

    py读取本地图片并返回图片给前端base64格式 直接贴代码,有用请收藏 from fastapi import FastAPI from get90V import resBody, getRewr ...

最新文章

  1. 画布Canvas的使用
  2. Web前端经典面试试题(二)
  3. 利用css3实现jQuery中的slideDown和slideUp效果
  4. 鸿蒙系统突破,华为解锁新成就!新系统用户突破1亿,鸿蒙系统也传来了新消息...
  5. Java 判断操作系统类型(适用于各种操作系统)
  6. Visual Studio 2008在设计视图和代码视图切换的快捷键F7
  7. java date不要秒_java – 比较日期忽略Joda中DateTime的秒和毫秒时刻
  8. ecs服务器数据迁移_如何非常方便地从Windows文件服务器把数据完整地迁移到ONTAP Select...
  9. python数据结构与算法分析_数据结构和算法分析
  10. NET 对象生命周期
  11. (72)FPGA面试题-使用不同的代码实现2-4译码器?使用if语句
  12. 学习python遇到的一些有趣点(每日更新)
  13. 54 计算机与信息科学类,计算机与信息科学类专业包括哪些
  14. 2021-09-06Cross-product transformation
  15. filenet分布式部署
  16. 上网账号口令怎么获取_怎么从路由器里获取上网帐号和密码
  17. 串口线的交叉直连之痛
  18. 髂嵴最高点在哪里_两侧髂嵴最高点连线约平 ( )
  19. 安全面试之WEB安全(二)
  20. springboot+druid+dynamic-datasource+mysql数据库密码加密

热门文章

  1. FPGA设计编程(二) 8-3线优先编码器与3-8线译码器
  2. DEGUG修改BW表中数据以及修改更改日志
  3. 用python计算圆柱体的体积和表面积_Java圆柱体表面积和体积计算代码实例
  4. Android实现截屏和截长图功能的几种方法
  5. 招商银行信用卡还款冲账顺序
  6. 豪江智能更新招股书:2021年净利润、毛利率双降,表现不及同行
  7. 中断向量表 异常相量表 中断向量(中断函数入口地址)ARM和X86异常向量表不同
  8. 你要找的cocos面试答案都在这里了!
  9. 何时“大庇天下寒士俱欢颜”(附笑话)
  10. 用迭代器指针改变map容器的值