导入Zxing_lib
设置权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
<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"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
添加依赖 Acp依赖和logger依赖
implementation 'com.orhanobut:logger:2.2.0'
implementation 'com.mylhyl:acp:1.1.7'
初始化Zxing
ZXingLibrary.initDisplayOpinion(this);
Acp.getInstance(this).request(new AcpOptions.Builder()
.setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE
, Manifest.permission.READ_PHONE_STATE
, Manifest.permission.SEND_SMS
,Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_WIFI_STATE,Manifest.permission.CALL_PHONE,
Manifest.permission.CAMERA
)
.build(),
new AcpListener() {
@Override
public void onGranted() {
// call();
}
@Override
public void onDenied(List<String> permissions) {
Toast.makeText(MainActivity.this, "你拒绝了这个权限", Toast.LENGTH_SHORT).show();
}
});
设置点击的intent的跳转
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent,112);
Log.d(TAG, "onActivityResult: "+ "我很快乐");
Logger.i("hello444555555");
Logger.v("hello444");
Logger.wtf("hello666");
String JSON_CONTENT=
"{\"Category\":[{\"categoryId\":1,\"categoryName\":\"饮品\",\"categoryImage\":\"/upload/yinpin.jpg\"},{\"categoryId\":2,\"categoryName\":\"食品\",\"categoryImage\":\"/upload/shiping.jpg\"},{\"categoryId\":3,\"categoryName\":\"酒类\",\"categoryImage\":\"/upload/jiullei.jpg\"}],\"recommend\":{\"id\":11,\"productName\":\"统一老坛泡椒牛肉袋面香辣味110g*24袋\",\"filenameSmall\":\"/upload/ty_ltpj_small.jpg\",\"productPrice\":48.0,\"productCost\":47.5}}";
Logger.json(JSON_CONTENT);
}
设置请求返回的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/**
* 处理二维码扫描结果
*/
if (requestCode == 112) {
//处理扫描结果(在界面上显示)
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.d(TAG, "onActivityResult: "+ result);
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
}
}
}
}