Zxing android扫描条形码,onActivityResult不会调用
问题描述:
@Override
public void onClick(View v) {
if (v.getId() == R.id.scan_button) {
Log.i("result", "START SCAN");
IntentIntegrator scanIntegrator = new IntentIntegrator(
BarcodeScan.this);
scanIntegrator.initiateScan();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.startActivityForResult(intent, resultCode);
Log.i("result", "Result Out");
if (requestCode == 0) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(
requestCode, resultCode, intent);
if (resultCode == RESULT_OK) {
if (scanningResult != null) {
String scanContent = scanningResult.getContents();
DatabaseAdapter mDbHelper = new DatabaseAdapter(this);
mDbHelper.createDatabase();
mDbHelper.open();
BookController bc = new BookController(mDbHelper.open());
Log.i("result", scanContent);
String bookID = bc.getBookIDByBarcode(scanContent);
System.out.println(bookID);
intent = new Intent(context, ReserveBook.class);
intent.putExtra("BookID", bookID);
startActivity(intent);
this.finish();
} else {
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
Log.i("App", "Scan unsuccessful");
}
}
}
我正在执行Zxing条码扫描到我的应用程序中,我可以扫描条形码,但扫描后应用程序停止。在LogCat中,开始扫描打印出来。之后,该应用程序关闭。Zxing android扫描条形码,onActivityResult不会调用
答
不要调用super.startActivityForResult(intent,resultCode);删除这一行。
同样的结果,扫描应用程序关闭后。 – user3687053 2014-11-02 06:41:49
删除该行后,您是否至少会看到Log.i(“result”,“Result Out”);打印在您的调试控制台上? – 2014-11-02 13:27:27
删除除了Log.i(“result”,scanContent)之外的所有内容if(scanningResult!= null){}声明。可能是您的ReserveBook活动没有像您那样开始,或者数据库未打开。反正,如果你能看到Log.i(“result”,“Result Out”);和Log.i(“result”,scanContent);打印出来,那么你可以声称onActivityResult()被正确调用。 – 2014-11-02 13:32:47