一、添加权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
二、添加zxing-library
build.gradle(Module:app) dependencies
compile 'cn.yipianfengye.android:zxing-library:2.1'
三、Activity 主程序代码
package com.example.weijian.qrcodeapplication;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;
import com.uuzuche.lib_zxing.activity.ZXingLibrary;
public class MainActivity extends AppCompatActivity {
String TAG = "MainActivity";
int REQUEST_CODE = 1;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取摄像头权限
getCameraPermission();
//ZXingLibrary初始化
ZXingLibrary.initDisplayOpinion(this);
//控件初始化
textView = (TextView)findViewById(R.id.text);
Button qrButton = (Button)findViewById(R.id.qrcode);
qrButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
//处理扫描结果(在界面上显示)
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
String result = bundle.getString(CodeUtils.RESULT_STRING);
Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show();
Log.e(TAG,"解析结果:" + result);
textView.setText(result);//解析结果显示在TextView
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
}
}
}
}
public void getCameraPermission()
{
if (Build.VERSION.SDK_INT>22){
if (ContextCompat.checkSelfPermission(MainActivity.this,
android.Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){
//先判断有没有权限 ,没有就在这里进行权限的申请
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{android.Manifest.permission.CAMERA},2);
}else {
//说明已经获取到摄像头权限了 想干嘛干嘛
}
}else {
//这个说明系统版本在6.0之下,不需要动态获取权限。
}
}
}
四、源码下载
- 优快云下载:最简单的二维码扫描Android Application Demo
- 网盘下载:关注【小康师兄】微信公众号,并回复【QRCodeApplication】即可获取网盘链接
觉得好,就一键三连呗(点赞+收藏+关注)