封装成Helper类,特此记载,也希望能帮助到后来者
定义了一个回调接口用于解码后输出结果,运行于新线程,如要进行UI操作自行调用Handler接口
public class CameraDecodeHelper implements SurfaceHolder.Callback, PreviewCallback {
// 回调接口
public interface Callback {
public void onResult(String reslut, String barFormat);
}
/**
* 自动对焦
*/
private Camera.AutoFocusCallback mAutoFocusCallBack = new Camera.AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
if (success) { // 对焦成功,回调Camera.PreviewCallback
mCamera.setOneShotPreviewCallback(previewCallback);
}
}
};
// 执行自动对焦后解码条码和二维码
private Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(final byte[] data, Camera arg1) {
// 如果是竖屏则旋转取得的对焦结果
new Thread(new Runnable() {
@Override
public void run() {
// TODO 自动生成的方法存根
Decode(data);
}
}).start();
}
};
pri