<1>使用zxing二维码实现扫一扫功能,需要添加zxing.jar包到libs以及将下面的相关的文件导入到项目中
<2>在清单文件中添加所要用到的权限,并注册activity
<!-- 二维码扫描用到的权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.hardware.camera" />
<uses-permission android:name="android.hardware.camera.autofocus" />
<activity android:name=".activity.CaptureActivity" />
<3>核心代码:
//跳转到扫描界面,并返回值到所在的activity
Intent intent = new Intent(getActivity(), CaptureActivity.class);
startActivityForResult(intent, 100);
在当前的fragment中重写onActivityResult()方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
//如果bundle不为空
if (bundle != null) {
//获取扫描到的值
String result = bundle.getString("result");
//判断是否是网页地址,并且判断是否是与微信有关的网址
if (Patterns.WEB_URL.matcher(result).matches() && !result.startsWith("http://weixin.qq.com/")) {
//通过默认的浏览器打开网页
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.parse(result);
intent.setData(uri);
startActivity(intent);
} else if (result.startsWith("http://weixin.qq.com/")) {
//如果是与微信有关的网址,则跳转到ScanResultActivity
Intent intent = new Intent(getActivity(), ScanResultActivity.class);
intent.putExtra("result", "以下内容非本应用提供,请谨慎使用,与微信有关");
startActivity(intent);
} else {
//否则跳转到ScanResultActivity中
Intent intent = new Intent(getActivity(), ScanResultActivity.class);
intent.putExtra("result", "无法展示");
startActivity(intent);
}
} else {
//bundle为空时,表示无法识别,依然跳转到ScanResultActivity中
Intent intent =