主题
内置扫码模块
软解码
language
// 注:使用该接口需确认当前硬件是否具备内置扫描
// 导入 class
import com.hcd.hcdpos.scannermanager.scannerdecode.ScannerDecode;
// 定义内置扫码类
private ScannerDecode mScannerDecode;
// 初始化,如可放置于 onCreate 中
mScannerDecode = new ScannerDecode(this);
// 判断当前设备是否支持,在硬件支持的情况下,再使用扫码功能;
// 软解 & 硬解 选择其一,硬件上只会支持其中一种;
// 支持 软解的扫码模块
boolean isSupportSW = mScannerDecode.isSupportScanner();
// 启动 & 结束 必须成对出现,启动一次,必须有一次结束,不允许交叉调用 (如启动两次) ; // 启动扫码,带监听,预览 & 不需要预览,同一时刻只能选择一种 ;
// 启动&关闭 扫码因为会打开&关闭摄像头,建议在子线程中执行;
// 带预览的界面,建议在 预览窗体 SurfaceView 绘制好之后 200ms,再启动扫码;
/* 扫描头不需要预览 Sample */
private void initScannerDecodeListener() {
mScannerDecode.startSoftwareScanCode(new
ScannerDecode.ScannerValueListener() {
@Override
public void onScannerValue(String value) {
// String value 即为扫描的结果;
// 如果在收到扫描内容后,想重新出发扫描执行如下屏蔽部分
// mScannerDecode.releaseSoftwareScanCode();
// initScannerDecodeListener();
}
});
/* 需要预览 Sample */
<SurfaceView
android:id="@+id/camerascanner_preview"
android:layout_width="400dip"
android:layout_height="300dip"
android:layout_gravity="center" />
private void initScannerDecodeListener() {
mScannerDecode.startScanCode(new ScannerDecode.ScannerValueListener() { @Override
public void onScannerValue(String value) {
// String value 即为扫描的结果;
// 如果在收到扫描内容后,想重新出发扫描执行如下屏蔽部分
// mScannerDecode.releaseSoftwareScanCode();
// initScannerDecodeListener();
}
},
((SurfaceView) findViewById(R.id.camerascanner_preview)).getHolder());
}
// 关闭扫码模块(使用完需调用)
mScannerDecode.stopScanCode()
mScannerDecode = null; //建议释放硬解码
language
// 注:使用该接口需确认当前硬件是否具备内置扫描
// 导入 class
import com.hcd.hcdpos.scannermanager.scannerdecode.ScannerDecode;
// 定义内置扫码类
private ScannerDecode mScannerDecode;
// 初始化,如可放置于 onCreate 中
mScannerDecode = new ScannerDecode(this);
// 判断当前设备是否支持,在硬件支持的情况下,再使用扫码功能;
// 如下软解 & 硬解 选择其一,硬件上只会支持其中一种;
// 支持 硬解的扫码模块
boolean isSupportHW = mScannerDecode.isSupportHWScanner();
// 启动 & 结束 必须成对出现,启动一次,必须有一次结束,不允许交叉调用 (如启动两次) ; // 启动扫码,带监听,当有扫码内容时,监听即可收到扫描内容;
// 持续扫描过程,无需 结束+重新启动,只需要 一直等待监听即可;
// 不在需要扫码的时候,再将 扫码 结束
/* 硬解扫描头 */
private void initHWScannerDecodeListener() {
mScannerDecode.startScanCode(new ScannerDecode.ScannerValueListener() { @Override
public void onScannerValue(String value) {
// String value 即为扫描的结果,此处无需重新触发,持续等待 value 值回调即可
Log.d(TAG, "onScannerValue value: " + value);
}
});
}
// 关闭扫码模块(使用完需调用)
mScannerDecode.stopScanCode() mScannerDecode = null; //建议释放