【问题标题】:Zxing android scan barcode, onActivityResult not callingZxing android扫描条码,onActivityResult没有调用
【发布时间】:2014-11-02 21:28:35
【问题描述】:
    @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 中,打印出 START SCAN。之后应用关闭。

【问题讨论】:

  • 你能查一下我的question相关吗?

标签: android zxing


【解决方案1】:

不要调用 super.startActivityForResult(intent, resultCode);删除此行。

【讨论】:

  • 同样的结果,扫描后关闭应用。
  • 删除该行后,您至少看到 Log.i("result", "Result Out");在调试控制台上打印出来?
  • 删除所有内容 if (scanningResult != null) { } 除了 Log.i("result", scanContent);陈述。可能是您的 ReserveBook 活动没有像您一样开始,或者数据库没有打开。无论如何,如果你能看到 Log.i("result", "Result Out");和 Log.i("结果", scanContent);打印出来,那么你就可以声称 onActivityResult() 被正确调用了。
  • 我没有看到 Result Out,它似乎永远不会调用 onActivityResult()
  • 替换新的 IntentIntegrator(BarcodeScan.this);使用新的 IntentIntegrator(this);看看这里的工作示例:stackoverflow.com/questions/11015807/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
相关资源
最近更新 更多