条形码扫描仪没有结果

时间:2012-02-05 19:54:27

标签: android barcode listactivity zxing


我正在使用ZXING IntentIntegrator来读取URL。 我设法使用:

启动条形码扫描仪
IntentIntegrator integrator = new IntentIntegrator(List8.this);
dialog = integrator.initiateScan();

条形码扫描器显示已找到一个URL并将我重定向回我的应用程序,我在那里使用以下信息检索信息:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
     if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
                Toast.makeText(getApplicationContext(), contents, Toast.LENGTH_LONG).show();
                // Handle successful scan
            } else if (resultCode == RESULT_CANCELED) {
                // Handle cancel
            }
        }


      }

问题在于,即使发现URL已经发现requestCode为-1且intent没有数据。
有谁知道我的问题的根源是什么?

附:
我尝试实现onActivityResultListener,但得到以下错误:

The return type is incompatible with PreferenceManager.OnActivityResultListener.onActivityResult(int, int, 
     Intent)

2 个答案:

答案 0 :(得分:1)

为什么期望resultCode不是-1resultCode用于确定意图,"为什么"你已经为结果调用了活动。没有更多,没有更少......我会删除if (requestCode == 0),因为它并不重要。

答案 1 :(得分:0)

您确定不看resultCode吗? RESULT_OK的值实际上是-1(http://developer.android.com/reference/android/app/Activity.html#RESULT_OK)。

如果您使用的是集成代码,那么requestCode实际上将是0xC0DE。但是,如果您只使用项目中的IntentIntegrator.parseActivityResult(),则无需为这些细节烦恼并正确使用它们。请参阅javadoc,其中显示了如何完全使用它。