项目中添加设备操作需要扫描二维码,考虑到多种扫码方式,也添加直接识别二维码图片的操作。

首先跳转系统相册选取图片

        Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, DEVICE_PHOTO_REQUEST);

接着将选取的图片展示到界面

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
//用户没有进行有效的设置操作,返回
if (requestCode == Activity.RESULT_CANCELED ){
ToastUtil.showToast(AddDeviceActivity.this, R.string.cancel);
return;
}
if (DEVICE_PHOTO_REQUEST == requestCode){
if (null != data) {
Uri selectedImage = data.getData();
String[] filePathColumns = {MediaStore.Images.Media.DATA};
String imagePath;
Cursor c = this.getContentResolver().query(selectedImage, filePathColumns, null, null, null);
if (c != null) {
c.moveToFirst();
int columnIndex = c.getColumnIndex(filePathColumns[]);
imagePath = c.getString(columnIndex);
c.close(); Bitmap bm = BitmapFactory.decodeFile(imgPath);
img_code.setImageBitmap(bm);
} else {
ToastUtil.showToast(this, "图片路径为空");
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}

然后用第三包的方法解码识别(需要导入'cn.bingoogolapple:bga-zxing:1.1.9@aar'),注意自己处理一下匿名 AsyncTask 内部类导致的Activity 泄漏问题

     img_code.setDrawingCacheEnabled(true);
final Bitmap bmp = img_code.getDrawingCache();
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
return QRCodeDecoder.syncDecodeQRCode(bmp);
} @Override
protected void onPostExecute(String result) {
if (TextUtils.isEmpty(result)) {
Toast.makeText(AddDeviceActivity.this, "二维码解析失败", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(AddDeviceActivity.this, result, Toast.LENGTH_SHORT).show();
}
}
}.execute();

android选取系统相册图片后,识别图中二维码的更多相关文章

  1. iOS - 长按图片识别图中二维码

    长按图片识别图中二维码: // 长按图片识别二维码 UILongPressGestureRecognizer *QrCodeTap = [[UILongPressGestureRecognizer a ...

  2. Vue实现长按图片识别图中二维码

    Vue实现长按图片识别图中二维码 思路:要想实现可以识别图片中的二维码,那必定是要将这张图进行上传操作,上传则需要file对象格式.不管是在H5还是APP中,展示的图片都是通过url的方式展示在img ...

  3. C#识别图中二维码

    1.在NuGet中添加 ZXing.Net 2.实例代码 /// <summary> /// 识别图中二维码 /// </summary> /// <param name ...

  4. Android 长按识别图中二维码 zxing

    #基于 Zxing, 初学Android 代码质量不高 //长按,通过zxing读取图片,判断是否有二维码 bigImage.setOnLongClickListener(new View.OnLon ...

  5. android——拍照,相册图片剪切其实就这么简单

    接触android这么久了.还没有真正的浩浩看看android拍照,相册图片剪切到底是怎么回事,每次都是从别人的代码一扣,就过来了.其实,谷歌提供的API已经很强大.只需要用的好,就那么几句就可以搞定 ...

  6. iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK

    iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言:    今天给大家 ...

  7. Android调用系统相册和拍照的Demo

    最近我在群里看到有好几个人在交流说现在网上的一些Android调用系统相册和拍照的demo都有bug,有问题,没有一个完整的.确实是,我记得一个月前,我一同学也遇到了这样的问题,在低版本的系统中没问题 ...

  8. zxing 如何识别反转二维码

    说起二维码扫描,估计很多人用的是 zxing 吧. 然而 zxing 虽然好用,但是却有一些坑. 这边分析一下自己实际项目遇到的一个坑. 什么坑呢? 下面举个栗子你就懂了. 这边生成二维码使用的是网络 ...

  9. 【转】Delphi+Halcon实战一:两行代码识别QR二维码

    Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ号应原作者要求隐藏了:xxxx6348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.co ...

随机推荐

  1. php分享十七:http状态码

    一:http状态码 (200,301,302,304,305,400,401,403,404,500,501,502,503,504) HTTP状态码(HTTP Status Code)是用以表示网页 ...

  2. 一条SQL语句中算日销售额和月销售额

    刚刚做项目的时候用到的 用户表:用户ID,用户名,余额 流水表:时间,用户ID,用户名,类型(0充值,1消费),变更金额 现在要查每个用户的日销售额和月销售额,本来最简单的方法是先把所有用户查出来,然 ...

  3. C++ Primer笔记 容器和算法(2)

    erase 删除后  返回的是删除元素的后一个迭代器位置 int main() { //怎样正确的删除全部元素 循环 int a[]={1,2,3,4,5,6,7,8,9}; vector<in ...

  4. Android各版本代号、版本号、API/NDK级别、发布时间及市场份额

    Android各版本代号.版本号.API/NDK级别.发布时间及市场份额 代号 版本号 API/NDK级别 发布时间 - O 8.0 API level 26 2017-3-21 牛轧糖 Nougat ...

  5. 【DIOCP3-说明书】DIOCP3的输出日志

    DIOCP3除了有详细的监控面板之外,还有详细的输出日志,当然需要打开日志编译开关! 在工程选项加入DEBUG编译指令,这样在运行中就可以看到DIOCP3的运行详细日志 日志输出在EXE相同目录的LO ...

  6. 【MyBean调试笔记】接口的使用和清理

    [DEMO信息] 有问题的DEMO, 由芒果提交 [问题描述] 双击Tab页面关闭页面和插件的时候出现AV异常 [问题调试] 我们在调试的时候出现这个错误时断点停在这里 可以看到停留在这个位置@Int ...

  7. TensorFlow学习笔记(8)--网络模型的保存和读取【转】

    转自:http://blog.csdn.net/lwplwf/article/details/62419087 之前的笔记里实现了softmax回归分类.简单的含有一个隐层的神经网络.卷积神经网络等等 ...

  8. Asp.Net正则获取链接地址

    string html = “html代码”; Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?< ...

  9. 使用typed.js实现页面上的写字功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Spring Boot(三):RestTemplate提交表单数据的三种方法

    http://blog.csdn.net/yiifaa/article/details/77939282 ********************************************** ...