b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

android扫码源码(安卓扫一扫代码)

hacker2022-08-07 02:35:25昨日新闻95
本文目录一览:1、怎样查看AndroidAPP源代码2、

本文目录一览:

怎样查看 Android APP 源代码

用压缩软件打开apk文件,解压出根目录中的classes.dex文件

使用cmd ,dex2jar.bat classes.dex命令将classes.dex转换为jar

再用jd-gui打开该jar就可以查看源码了,如果apk安全性好的话,有些代码是看不到的

扫描二维码的zing-2.3.0源码中,部分语句在Android-17中弃用了

//ctrl + 1添加@SuppressWarnings("deprecation")在onResume

if(Build.VERSION.SDK_INT  Build.VERSION_CODES.HONEYCOMB){

surfaceHolder.setType(surfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

//Integer.parseInt(Build.VERSION.SDK)改为Build.VERSION.SDK_INT

//YCbCr_420_SP用 ImageFormat.NV21 代替

//YCbCr_422_SP用ImageFormat.NV16 代替

//这些文档上都有,自己都可以解决的……

android里面 条形码扫描 应该是怎么做的,有没有源码 什么的,发一个给我啊

1、下载ZBar官方SDK程序(下载链接:),并打开项目,如下图:

2、添加libs文件,如下图:

3、将Android下的两个文件拷过来,一个CameraTestActivity.java和一个CameraPreview.java拷到源文件目录下:

4、将libs下的zbar.jar加入当前工程运行环境中,在AndroidManifest.xml中加入权限

uses-permission android:name="android.permission.CAMERA" /

uses-feature android:name="android.hardware.camera" /

uses-feature android:name="android.hardware.camera.autofocus" /

activity android:name=".CameraTestActivity" /activity

5、编译为apk程序并安装调试。在手机中打开程序即可进行扫描调试。

android开发 如何实现扫描本地二维码图片

开源的二维码扫描库主要有zxing和zbar,zbar在iPos平台上应用比较成熟,而在Android平台上主流还是用zxing库,因此这里主要讲述如何利用zxing进行二维码开发。

如何将zxing的Android源码导入工程。

在导入zxing的android源码之前,先去官方下载zxing的源码。

这里以1.6版本为例,zxing 1.6源码结构如下:

其中android文件夹就是android平台下的官方例子,在导入之前先要对core文件下的源码进行编译,得到核心包core.jar。

编译方法请参照:

然后就可以导入android平台下的例子了,导入方法如下:

打开Eclipse,新建android项目:(注意不要直接把android文件夹拷到workspace下导入,那样会无法导入)

导入核心包core.jar。

修改strings.xml文件。在导入core.jar之后工程还是会有下面的错误,出现这种错误可能是由于字符错误导致的,只需要把所有的%s 和%f改成 %1s和f   即可

修改完之后重新清理项目,此时已经没有错误了

将zxing代码嵌入自己的工程

在自己的工程中嵌入简化的zxing代码即可实现二维码生成和识别功能

嵌入方法:

将上述简化的代码拖到自己工程目录下;

将values文件夹和raw文件夹复制自己工程目录下;

建立CaptureActivity.java的布局文件capture.xml:

?xml version="1.0" encoding="utf-8"?

FrameLayout xmlns:android=""

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" 

    SurfaceView

        android:id="@+id/preview_view"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center" /

    com.zxing.view.ViewfinderView

        android:id="@+id/viewfinder_view"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" /

    RelativeLayout

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:layout_gravity="center"

        android:orientation="vertical" 

        TextView

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_alignParentTop="true"

            android:layout_centerInParent="true"

            android:gravity="center"

            android:paddingBottom="10dp"

            android:paddingTop="10dp"

            android:text="Scan Barcode"

            android:textColor="@android:color/white"

            android:textSize="18sp"

            android:textStyle="bold" /

        Button

            android:id="@+id/btn_cancel_scan"

            android:layout_width="230dp"

            android:layout_height="40dp"

            android:layout_alignParentBottom="true"

            android:layout_centerInParent="true"

            android:layout_marginBottom="75dp"

            android:text="Cancel"

            android:textSize="15sp"

            android:textStyle="bold" /

        

    /RelativeLayout

/FrameLayout

导入core.jar包

修改AndrodMainfest.xml

?xml version="1.0" encoding="utf-8"?

manifest xmlns:android=""

      package="com.qrcode"

      android:versionCode="1"

      android:versionName="1.0"

    uses-sdk android:minSdkVersion="7" /

    

    uses-permission android:name="android.permission.VIBRATE" /  !-- 震动权限 --

    uses-permission android:name="android.permission.CAMERA" /

    uses-feature android:name="android.hardware.camera" /        !-- 使用照相机权限 --

    uses-feature android:name="android.hardware.camera.autofocus" /   !-- 自动聚焦权限 --

    application android:icon="@drawable/icon" android:label="@string/app_name"

        activity android:name=".MainActivity"

                  android:label="@string/app_name"

            intent-filter

                action android:name="android.intent.action.MAIN" /

                category android: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二维码识别源码,可有多种实现方式

这里简单介绍一下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库除了二维码外,其实对于条形码也是支持的,只是我这里没有介绍。有需要的自己去看看源码即可。

转载

发表评论

评论列表

  • 泪灼颇倔(2022-08-07 14:08:54)回复取消回复

    ew Code上面就是二维码生成的方法接口,如果你只是使用者方法,很简单,只要传入一个URL即可,就像我截图里面一样,传入一个合法的网址即可。或者像现在一些移动APP的推广,把APP下载地址转为二维码,只要扫一下就可以下载相应的APP。这个也是目前比较流行的AP

  • 慵吋春慵(2022-08-07 06:24:57)回复取消回复

    本文目录一览:1、怎样查看 Android APP 源代码2、扫描二维码的zing-2.3.0源码中,部分语句在Android-17中弃用了3、android里面 条形码扫描 应该是怎么做的,有没有源码 什么的,发一个给我啊4、android开发 如何实现扫描本地二