🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
zxing的github地址为:[https://github.com/zxing/zxing](https://github.com/zxing/zxing) 因为使用过程需要编译(或者拷贝源文件),稍微麻烦一些,所以采用了另外一个封装版本:[https://github.com/yipianfengye/android-zxingLibrary](https://github.com/yipianfengye/android-zxingLibrary) #### 权限 ~~~ <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ~~~ #### 初始化 在项目入口(比如Application的onCreate方法)初始化 ~~~ ZXingLibrary.initDisplayOpinion(this); ~~~ #### 打开相册 也可以使用读取相册中的方式。以下只是增加了分类 ~~~ Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(intent, 1); ~~~ #### 回调 ~~~ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if (data != null) { Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); CodeUtils.analyzeBitmap(picturePath, new CodeUtils.AnalyzeCallback() { @Override public void onAnalyzeSuccess(Bitmap mBitmap, String result) { Toast.makeText(MainActivity.this, "解析结果:" + result, Toast.LENGTH_LONG).show(); } @Override public void onAnalyzeFailed() { Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show(); } }); } } } ~~~