【发布时间】:2019-07-19 10:35:28
【问题描述】:
我正在为我的应用程序使用一维扫描仪,即“https://www.issyzonepos.com/ipda018-android-7-0-pda-bluetooth-4-1-support-gprs-wifi_p326.html”。该应用程序基本上是用于扫描代码和订购数据。我还通过相机实现了扫描仪。我的 APP 在此设备上运行良好,但是当我尝试在移动设备上运行它时,它会在“sm = new ScanDevice();”上崩溃因为它是非扫描设备。我尝试了很多来解决这个问题,你能告诉我我该如何解决这个问题。我已使用此设备的 SDK 来扫描扫描仪。
代码:
sm = new ScanDevice();
public void onKeyDown(int keyCode, KeyEvent event) {
int charCode = event.getKeyCode();
System.out.println("charCode = " + keyCode + " " + event);
//sm.openScan();
if (charCode == 302 || charCode == 301 || charCode == 303) {
if (spBar.getSelectedItem().toString().trim().equals("SELECT BAR")) {
Toast.makeText(getActivity(), getResources().getString(R.string.select_a_bar), Toast.LENGTH_SHORT).show();
} else {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(actSearchCode.getApplicationWindowToken(), 0);
System.out.println("openScannerL = " + sm.getOutScanMode());
sm.openScan();
}
} else if (charCode == 82) {
} else {
sm.closeScan();
}
}
为了完整起见,这里是来自 OP 的错误的堆栈跟踪 - 不幸的是,作为屏幕截图。
第 76 行是sm = new ScanDevice();
【问题讨论】:
-
最简单的方法就是在该行周围加上
try-catch- 并酌情处理。如果您需要任何更具体的帮助,您需要显示更多代码 -
@AleksG 检查我更新的代码
标签: android android-layout android-fragments barcode-scanner scanning