简单的二维码的扫描

来源:互联网 发布:无线网址域名注册 编辑:程序博客网 时间:2024/06/08 11:42
1:导入依赖
注意:生成二维码用jar包,扫描才用依赖
compile'cn.yipianfengye.android:zxing-library:2.1'
2:导入权限
<uses-permissionandroid:name="android.permission.CAMERA"/>
<uses-permissionandroid:name="android.permission.FLASHLIGHT"/>
<uses-featureandroid:name="android.hardware.camera"/>
<uses-featureandroid:name="android.hardware.camera.autofocus"/>
<uses-permissionandroid:name="android.permission.VIBRATE"/>
<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
3:在全局做初始化

public classMyappextendsApplication {
@Override
public void onCreate() {
super.onCreate();
ZXingLibrary.initDisplayOpinion(this);
}
}

4:布局里点击一个button调用摄像头进行扫描


public classMainActivityextendsAppCompatActivity {

private final int REQUEST_CODE=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button= (Button) findViewById(R.id.button_m);
button.setOnClickListener(newView.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =newIntent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent,REQUEST_CODE);
}
});
}

@Override
protected void onActivityResult(intrequestCode,intresultCode, 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();
}else if(bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(MainActivity.this,"解析二维码失败", Toast.LENGTH_LONG).show();
}
}
}
}
}
5:注意
在模拟器上是运行不了的,需要运行在手机上。如果手机android版本在6.0以上,出现黑屏,需要手动在设置——权限管理添加调用相机(摄像头)的权限。




1 0