android图片识别二维码
① Android实现二维码扫描功能
1.//依赖注入
2.根据生命周期来对业务逻辑进行处理
1.布局的声明
2.Activity生命周期来处理业务逻辑
3.手机震动方法处理(在扫描成功的方法中调用此方法就可以了)
private void vibrate() {
Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
vibrator.vibrate(200);
}
② 为什么安卓手机扫描不出来二维码
如果您使用的是华为手机,手机扫描二维码没有反应,请通过以下方式尝试解决:
1.检查手机网络状况是否良好
扫描二维码需在网络良好的情况下使用,请检查手机网络状况是否良好。
2.检查应用是否开启相机使用权限
使用第三方软件扫描二维码,需要开启该软件相机使用权限,开启方法如下:
进入设置,搜索进入权限管理,在权限页签下找到调用摄像头或者相机权限,打开该应用的权限开关。
3.二维码是否完整
请确认下二维码是否被损坏,或者二维码是否正确(是不是要扫描的目标二维码,有些二维码扫描进入是一个链接)。
4.手机是否正常对焦
(1)请调整相机和二维码的距离,不要离的太近。很近距离的情况下图像稍微模糊,会导致识别成功率低。
(2)部分手机不显示对焦框,需要在相机取景框点击二维码图片,手动对焦成功后才能识别。
(3)确认下周围的光线,如果光线比较暗,也会影响二维码的扫描。
(4)请确认后置摄像头是否正常。
5.检查是否安装了安全软件
查看手机里面是否安装了其他三方的安全软件,如有,建议您查看是否被安全软件所拦截。
6.仍然无法解决?
可能是系统相机服务出现问题,建议您重启手机再尝试。
若问题依然存在,请提前备份好重要数据(QQ、微信等第三方应用需单独备份),携带购机凭证前往华为客户服务中心进行检测处理。
相关链接如下:华为客户服务中心维修备件价格查询寄修服务预约服务
③ 公司做了一张很长的图片,上面有多个二维码,苹果手机可以分别识别出来,安卓系统手机不能识别,怎么办
你可以重新制作二维码,放在一个服务器上面制作二维码。
比如说打开软件设置好二维码的标签尺寸大小,之后点击软件左侧的工具栏中绘制二维码,并在设置好的标签纸上面绘制一个二维码,鼠标双击这个二维码,弹出“图形属性”,在数据源里面添加你想要二维码展示的信息。
制作完成之后,在分别用苹果手机和安卓手机扫一下这个信的二维码图片,就可以扫描出来了。
④ android端UC浏览器扫描手机本地带有二维码的图片无法识别
您好,很高兴为您服务!
麻烦提供下该二维码的图片继续测试。使用安卓9.9.2版本的
UC浏览器
测试,扫描本地二维码,并不会出现该情况。重启下浏览器,再次扫描试试,还有,试下扫描其他二维码能否正常。也麻烦提供下该二维码图片测试下。
如果仍有问题,请您继续向我们反馈,我们会第一时间为您跟进。
⑤ 安卓平板电脑怎么扫二维码
安卓平板电脑没有扫描二维码的功能。可以在第三方软件的帮助下扫描。具体方法如下:
1、首先需要在iPad桌面上找到“微信”应用程序,点击打开微信应用程序,如下图所示;
⑥ Android二维码识别源码,可有多种实现方式
这里简单介绍一下ZXing库。ZXing是一个开放源码的,用java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。
下面是ZXing的demo运行,我这里创建了一个二维码,内容是我博客的网址,大伙可以用微信的扫一扫功能,试一下。就可以直接打开我博客。
2、ZXing库主要类
下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用:
CaptureActivity。这个是启动Activity 也就是扫描器。
CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。
DecodeThread 解码的线程。
com.google.zxing.client.android.camera 包,摄像头控制包。
ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。
3、使用ZXing生成二维码
下面针对二维码生成和解析做个简单介绍,至于详细的使用方法,建议大家还是自己看看源码,使用起来很简单,不过这个开源项目的代码,值得好好看看。首先给出二维码生成的方法:
View Code
上面就是二维码生成的方法接口,如果你只是使用者方法,很简单,只要传入一个URL即可,就像我截图里面一样,传入一个合法的网址即可。或者像现在一些移动APP的推广,把APP下载地址转为二维码,只要扫一下就可以下载相应的APP。这个也是目前比较流行的APP的推广方式。
上面代码做的事情不多,主要是调用ZXing库里面QRCodeWriter().encode的方法对我们传进去的URL进行编码,具体如何编码,这个我这里就不详细说,有兴趣可以看ZXing的源码。文章最后会给出ZXing的源码和例子代码。
4、扫描二维码获取信息
扫描获取二维码信息的工作稍微复杂一些,主要是需要编写Camera的使用,这个跟我们一般使用Camera一样,需要使用Surfaceview作为预览,这一部我这里就不说了,这个应该不是太复杂。对于使用过Camera做预览的朋友,应该是挺简单的事情。获取二维码数据的关键处理是在Camera的自动对焦回调函数哪里,调用ZXing的解码接口。
View Code
这里稍微多说一句,由于解码需要一定时间,所以ZXing的解码调用,都是使用了Handler作为线程通信机制,解码的工作都是放在独立线程里面使用的,如果你直接在主线程解码,恐怕ANR问题是避免不了。
View Code
上面是解码的线程处理不同状态的时候需要注意的地方,我们这里只看获取图像成功的地方,成功获取图片解码的实在DecodeThread里面实现,DecodeThread里面解码成功后,会把数据序列化,然后保存到Bundle里面,我们可以直接通过Bundle的序列化,获取到图片数据。同时会把解码后的结果保存到MSG里面,然后就可以根据实际情况进行处理,例如上面代码,解码成功后,会调用一个处理函数:
View Code
上面就是整个二维码的解码流程,里面因为涉及很多Camera的使用,所以你如果需要使用二维码识别,需要注意一下你的程序需要申请下面的权限,一般的Camera使用以及Camera的自动对焦等。
View Code
5、结语
上面就是生成和识别二维码的关键流程和代码,有兴趣的朋友可以自己查看ZXing的源码,里面有很多图像分析的知识可以学习。具体使用也可以参考我下面给出的Demo。二维码对于现在移动开发来说很是很常用的技术,所以有空可以了解一下,说不定什么时候就用上了。另外,ZXing库除了二维码外,其实对于条形码也是支持的,只是我这里没有介绍。有需要的自己去看看源码即可。
转载
⑦ 安卓手机二维码识别怎么用
安卓手机一般都有自带二维码软件的,但是貌似都一般好用啦
我都是用UC浏览器的二维码功能的,打开浏览器之后用二维码拍摄,就可以把电脑的网址直接读进手机浏览器里,然后下载或浏览网页什么的,超爽~
求采纳~
⑧ 在android开发中 什么库可以识别DM二维码
1.1 准备工作
如果我们只做二维码的生成,那么只需要添加核心jar包即可,
1.2 二维码生成
OK,添加完jar包之后我们就可以开始写二维码生成代码了,二维码本身就是一张Bitmap图片,所以我们这里主要就是看怎么样来生成这张图片,我在主界面添加一个按钮和一个ImageView,当点击按钮时生成一张二维码图片显示在ImageView上。布局如下:
[java] view plain print?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="org.mobiletrain.qrwriter.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="generate"
android:text="生成二维码"/>
<ImageView
android:id="@+id/iv"
android:layout_width="256dp"
android:layout_height="256dp"
android:layout_centerInParent="true"/>
</RelativeLayout>
当我点击按钮时生成二维码图片,那我们就来看看生成二维码图片的核心代码:
[java] view plain print?
private Bitmap generateBitmap(String content,int width, int height) {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
Map<EncodeHintType, String> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
try {
BitMatrix encode = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
int[] pixels = new int[width * height];
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
if (encode.get(j, i)) {
pixels[i * width + j] = 0x00000000;
} else {
pixels[i * width + j] = 0xffffffff;
}
}
}
return Bitmap.createBitmap(pixels, 0, width, width, height, Bitmap.Config.RGB_565);
} catch (WriterException e) {
e.printStackTrace();
}
return null;
}
首先这个方法接收三个参数,这三个参数分别表示生成二维码的文本内容(你要把哪一个文本用二维码图片表示出来),第二个和第三个参数分别表示生成的二维码图片的宽和高。在这里,我们首先要获得一个QRCodeWriter实例,该实例中有一个方法叫做encode,通过该方法对文本内容进行编码,该方法共有五个参数,第一个参数表示生成二维码的文本内容,第二个参数表示编码格式,第三个参数表示生成的二维码的宽度,第四个参数表示生成的二维码的高度,第五个参数可选,可以用来设置文本的编码,encode方法的返回值是一个BitMatrix,你可以把BitMatrix理解成一个二维数组,这个二维数组的每一个元素都表示一个像素点是否有数据。OK,接下来我们需要定义一个int数组用来存放Bitmap中所有像素点的颜色,可是我们又怎么知道每一个像素点是什么颜色呢?这个时候就需要我们遍历BitMatrix了,如果BitMatrix上的点表示 该点有数据,那么对应在Bitmap上的像素点就是黑色,否则就是白色。BitMatrix中的get方法的返回值为一个boolean类型,true表示该点有数据,false表示该点没有数据。通过两个嵌套的for循环将BitMatrix遍历一遍,然后给pixels数组都赋上值,OK,pixels数组有值之后,接下来调用Bitmap的createBitmap方法创建一个Bitmap出来就可以了,createBitmap方法共接收6个参数,第一个参数表示Bitmap中所有像素点的颜色,第二个参数表示像素点的偏移量,第三个参数表示Bitmap每行有多少个像素点,第四个参数表示生成的Bitmap的宽度,第五个参数表示生成的Bitmap的高度,第六个参数表示生成的Bitmap的色彩模式,因为二维码只有黑白两种颜色,所以我们可以不用考虑透明度,直接使用RGB_565即可。OK,这样的话我们就获取到了二维码的图片了,最后我们再来看看点击事件:
[java] view plain print?
public void generate(View view) {
Bitmap qrBitmap = generateBitmap("http://www.csdn.net",400, 400);
iv.setImageBitmap(qrBitmap);
}
⑨ android开发 如何实现扫描本地二维码图片
开源的二维码扫描库主要有zxing和zbar,zbar在iPos平台上应用比较成熟,而在Android平台上主流还是用zxing库,因此这里主要讲述如何利用zxing进行二维码开发。
如何将zxing的Android源码导入工程。
在导入zxing的android源码之前,先去官方下载zxing的源码http://code.google.com/p/zxing/downloads/list。
这里以1.6版本为例,zxing 1.6源码结构如下:
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.qrcode"
android:versionCode="1"
android:versionName="1.0">
<uses-sdkandroid:minSdkVersion="7"/>
<uses-permissionandroid:name="android.permission.VIBRATE"/><!--震动权限-->
<uses-permissionandroid:name="android.permission.CAMERA"/>
<uses-featureandroid:name="android.hardware.camera"/><!--使用照相机权限-->
<uses-featureandroid:name="android.hardware.camera.autofocus"/><!--自动聚焦权限-->
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<activityandroid:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--隐藏键盘--><!--全屏-->
<activity
android:configChanges="orientation|keyboardHidden"
android:name="com.zxing.activity.CaptureActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
</activity>
</application>
</manifest>这种情况大致就可以实现二维码扫描了,想细化的话,还可以多看看安卓二维码扫描开发相关的教程
⑩ 安卓(Android)手机如何使用二维码
二维码用某种特定几何图形按定规律平面(二维向)布黑白相间图形记录数据符号信息代码编制巧妙利用构计算机内部逻辑基础0、1比特流概念使用若干与二进制相应几何形体表示文字数值信息通图象输入设备或光电扫描设备自识读实现信息自处理:
二维条码
/
二维码能够横向纵向两位同表达信息能面积内表达量信息二维码何使用我见
Android
应用使用二维码载前提
Android
手机要装扫描(或识别)二维码软件Android平台见手机码工具快拍(Quick拍)或条码扫描器(Barcode
Scanner)我快拍例安装快拍二维码扫描工具打该软件:打快拍二维码扫描工具准网站二维码:稍等片刻快拍自识别并扫描该
二维码址:扫描完整快拍显示该二维码信息1处二维码信息2号二维码扫描结
apk
文件址点击3号进行载:至快拍已经完使命(使用二维码):识别二维码并载址栏步
apk
文件址载完安装即