导入依赖
implementation files(‘libs/zxing3.3.1.jar’)
implementation ‘com.journeyapps:zxing-android-embedded:2.0.1@aar’
implementation ‘com.journeyapps:zxing-android-legacy:2.0.1@aar’
implementation ‘com.journeyapps:zxing-android-integration:2.0.1@aar’
点击事件
ImageView imageView = view.findViewById(R.id.sao);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//判断相机权限是打开
//0代表打开权限,-1代表没有打开权限
if(ActivityCompat.checkSelfPermission(getActivity(),Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
{
//如果没有打开权限(-1),就去获取相机打开权限
ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.CAMERA},100);
}
else
{
//如果已经打开权限则直接执行扫描二维码
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.initiateScan();
}
}
});
return view;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//获取权限前提需要判断请求码
if(requestCode == 100)
{
//权限下标判断 权限打开
if(grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
Toast.makeText(getActivity(),"权限已经打开",Toast.LENGTH_SHORT).show();
}
//没有打开权限则直接关闭
else
{
getActivity().finish();
}
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(intentResult != null) {
String contents = intentResult.getContents();
//变量contents就是二维码解码后的信息
Toast.makeText(getActivity(), "扫码成功得到数据" + contents, Toast.LENGTH_SHORT).show();
}
}