Skip to content

Commit 2276d12

Browse files
committed
添加screenshot,准备更新readme
1 parent 35a03a9 commit 2276d12

7 files changed

Lines changed: 49 additions & 47 deletions

File tree

Screenshots/scan_code.gif

2.08 MB
Loading

Screenshots/write_1_2_code.jpg

241 KB
Loading

Screenshots/write_code.gif

1.56 MB
Loading

czxing/src/main/cpp/ImageScheduler.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ ImageScheduler::ImageScheduler(JNIEnv *env, MultiFormatReader *_reader,
1515
this->env = env;
1616
this->reader = _reader;
1717
this->javaCallHelper = javaCallHelper;
18-
zbarScanner = new ImageScanner();
19-
zbarScanner->set_config(ZBAR_QRCODE, ZBAR_CFG_ENABLE, 1);
2018
qrCodeRecognizer = new QRCodeRecognizer();
2119
decodeQr = true;
2220
stopProcessing.store(false);
@@ -27,7 +25,6 @@ ImageScheduler::~ImageScheduler() {
2725
DELETE(env);
2826
DELETE(reader);
2927
DELETE(javaCallHelper);
30-
DELETE(zbarScanner);
3128
DELETE(qrCodeRecognizer);
3229
frameQueue.clear();
3330
delete &isProcessing;
@@ -174,10 +171,11 @@ void ImageScheduler::decodeZBar(const Mat &gray) {
174171

175172
const void *raw = gray.data;
176173
Image image(width, height, "Y800", raw, width * height);
177-
int n = zbarScanner->scan(image);
174+
ImageScanner zbarScanner;
175+
zbarScanner.set_config(ZBAR_QRCODE, ZBAR_CFG_ENABLE, 1);
178176

179177
// 检测到二维码
180-
if (n > 0) {
178+
if (zbarScanner.scan(image) > 0) {
181179
Image::SymbolIterator symbol = image.symbol_begin();
182180
LOGE("zbar GrayPixels Success Data = %s scanIndex = %d", symbol->get_data().c_str(),
183181
scanIndex);
@@ -334,7 +332,9 @@ Result ImageScheduler::readBitmap(jobject bitmap, int left, int top, int width,
334332

335333
const void *raw = gray.data;
336334
Image image(gray.cols, gray.rows, "Y800", raw, gray.cols * gray.rows);
337-
if (zbarScanner->scan(image) > 0) {
335+
ImageScanner zbarScanner;
336+
zbarScanner.set_config(ZBAR_QRCODE, ZBAR_CFG_ENABLE, 1);
337+
if (zbarScanner.scan(image) > 0) {
338338
Image::SymbolIterator symbol = image.symbol_begin();
339339
LOGE("zbar Code Data = %s", symbol->get_data().c_str());
340340
if (symbol->get_type() == zbar_symbol_type_e::ZBAR_QRCODE) {

czxing/src/main/cpp/ImageScheduler.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ class ImageScheduler {
6868
std::atomic<bool> isProcessing{};
6969
std::atomic<bool> stopProcessing{};
7070
double cameraLight{};
71-
ImageScanner *zbarScanner;
7271
QRCodeRecognizer *qrCodeRecognizer;
7372
SafeQueue<FrameData> frameQueue;
7473
int scanIndex;

sample/src/main/AndroidManifest.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@
4646
</activity>
4747
<activity android:name=".WriteQRCodeActivity" />
4848
<activity android:name=".CallBackTestActivity" />
49-
<activity android:name=".CustomizeActivity" />
49+
<activity
50+
android:name=".CustomizeActivity"
51+
android:launchMode="singleTop" />
5052

5153
</application>
5254

sample/src/main/java/me/sam/czxing/CustomizeActivity.java

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package me.sam.czxing;
22

3+
import android.Manifest;
34
import android.content.Intent;
5+
import android.content.pm.PackageManager;
46
import android.database.Cursor;
57
import android.graphics.Bitmap;
68
import android.graphics.BitmapFactory;
@@ -19,15 +21,11 @@
1921
import androidx.appcompat.app.ActionBar;
2022
import androidx.appcompat.app.AppCompatActivity;
2123

22-
import com.yanzhenjie.permission.Action;
23-
import com.yanzhenjie.permission.AndPermission;
24-
import com.yanzhenjie.permission.runtime.Permission;
25-
26-
import java.util.List;
27-
2824
import me.devilsen.czxing.code.BarcodeFormat;
2925
import me.devilsen.czxing.code.BarcodeReader;
3026
import me.devilsen.czxing.code.CodeResult;
27+
import me.devilsen.czxing.compat.ActivityCompat;
28+
import me.devilsen.czxing.compat.ContextCompat;
3129
import me.devilsen.czxing.util.BarCodeUtil;
3230
import me.devilsen.czxing.util.ScreenUtil;
3331
import me.devilsen.czxing.util.SoundPoolUtil;
@@ -43,6 +41,8 @@
4341
*/
4442
public class CustomizeActivity extends AppCompatActivity implements View.OnClickListener, ScanListener {
4543

44+
private static final int PERMISSIONS_REQUEST_CAMERA = 1;
45+
private static final int PERMISSIONS_REQUEST_STORAGE = 2;
4646
private static final int CODE_SELECT_IMAGE = 100;
4747

4848
private ScanView mScanView;
@@ -192,42 +192,43 @@ private void decodeImage(Intent intent) {
192192
showResult(result.getText());
193193
}
194194

195+
/**
196+
* 获取摄像头权限(实际测试中,使用第三方获取权限工具,可能造成摄像头打开失败)
197+
*/
195198
private void requestCameraPermission() {
196-
AndPermission.with(this)
197-
.runtime()
198-
.permission(Permission.Group.CAMERA)
199-
.onGranted(new Action<List<String>>() {
200-
@Override
201-
public void onAction(List<String> data) {
202-
203-
}
204-
})
205-
.onDenied(new Action<List<String>>() {
206-
@Override
207-
public void onAction(List<String> data) {
208-
209-
}
210-
})
211-
.start();
199+
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
200+
!= PackageManager.PERMISSION_GRANTED) {
201+
ActivityCompat.requestPermissions(this,
202+
new String[]{Manifest.permission.CAMERA},
203+
PERMISSIONS_REQUEST_CAMERA);
204+
}
212205
}
213206

214207
private void requestStoragePermission() {
215-
AndPermission.with(this)
216-
.runtime()
217-
.permission(Permission.Group.STORAGE)
218-
.onGranted(new Action<List<String>>() {
219-
@Override
220-
public void onAction(List<String> data) {
221-
Intent albumIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
222-
startActivityForResult(albumIntent, CODE_SELECT_IMAGE);
223-
}
224-
})
225-
.onDenied(new Action<List<String>>() {
226-
@Override
227-
public void onAction(List<String> data) {
228-
229-
}
230-
})
231-
.start();
208+
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
209+
!= PackageManager.PERMISSION_GRANTED) {
210+
ActivityCompat.requestPermissions(this,
211+
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
212+
PERMISSIONS_REQUEST_STORAGE);
213+
}
232214
}
215+
216+
@Override
217+
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
218+
if (requestCode == PERMISSIONS_REQUEST_CAMERA) {
219+
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
220+
mScanView.openCamera();
221+
mScanView.startScan();
222+
}
223+
return;
224+
} else if (requestCode == PERMISSIONS_REQUEST_STORAGE) {
225+
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
226+
Intent albumIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
227+
startActivityForResult(albumIntent, CODE_SELECT_IMAGE);
228+
}
229+
return;
230+
}
231+
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
232+
}
233+
233234
}

0 commit comments

Comments
 (0)