1、添加依赖
在项目的build.gradle添加:maven { url 'https://jitpack.io' }
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
在app的build.gradle 添加:
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
implementation 'com.github.yuzhiqiang1993:zxing:2.0.0'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
/*添加依赖*/
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
implementation 'com.github.yuzhiqiang1993:zxing:2.0.0'
}
在AndroidMainfest申请相机权限
<uses-permission android:name="android.permission.CAMERA"/>
2、好可以使用了
布局界面就是一个button和一个显示扫码结果的Edittext,代码就不贴了,图如下:
调用扫码功能代码如下:
button的响应事件:其中REQUEST_CODE_SCAN=0,就是一个请求的标志。
getPrimission():android6.0以上需要动态申请权限
scan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//android6.0以上需要动态申请相机等权限,
getPrimission();
//启动扫码
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE_SCAN);//REQUEST_CODE_SCAN=0
}
});
扫码返回后填充EditView,俩常量REQUEST_CODE_SCAN =0; RESULT_OK=-1
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 扫描二维码/条码回传
if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) {//RESULT_OK=-1
if (data != null) {
String content = data.getStringExtra(Constant.CODED_CONTENT);
result.setText(content);
}
}
}
申请权限的函数:其中android.permission.CAMERA表示相机权限,com.zhengyuan.learningqrscan表示包名,需要改成自己项目的包名
//动态申请权限
private void getPrimission() {
PackageManager pm = getPackageManager();
boolean permission = (PackageManager.PERMISSION_GRANTED ==
pm.checkPermission("android.permission.CAMERA", "com.zhengyuan.learningqrscan"));
if (permission) {
//"有这个权限"
Toast.makeText(MainActivity.this, "有权限", Toast.LENGTH_SHORT).show();
} else {
//"木有这个权限"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, 15);
}
}
}
点击button的运行效果如下
其中还能调用闪光灯,相册,震动等效果