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);删除这一行。

+0

同样的结果,扫描应用程序关闭后。 – user3687053 2014-11-02 06:41:49

+0

删除该行后,您是否至少会看到Log.i(“result”,“Result Out”);打印在您的调试控制台上? – 2014-11-02 13:27:27

+0

删除除了Log.i(“result”,scanContent)之外的所有内容if(scanningResult!= null){}声明。可能是您的ReserveBook活动没有像您那样开始,或者数据库未打开。反正,如果你能看到Log.i(“result”,“Result Out”);和Log.i(“result”,scanContent);打印出来,那么你可以声称onActivityResult()被正确调用。 – 2014-11-02 13:32:47