条形码扫描器无法得到结果。

3


我正在使用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,且意图没有数据。有人知道我的问题的根源是什么吗?
P.S. 我尝试实现onActivityResultListener,但出现以下错误:
The return type is incompatible with PreferenceManager.OnActivityResultListener.onActivityResult(int, int, 
     Intent)
2个回答

1
为什么您期望resultCode不是-1呢?resultCode用于确定您调用活动的意图,即“为什么”。没有更多,也没有更少...我建议您删除if (requestCode == 0),因为它并不重要。

我以为-1表示失败,我的错。 - eladrich
你能解释一下你不相关的回答如何回答了问题吗?我不知道为什么提问者选择了这个答案,但我希望有一些诀窍。 - stackunderflow
@Dagon 这个问题已经很久了,我有些不明白原帖究竟想要什么,但感谢你非常无礼地将我的答案标记为“无关”。基于显而易见的原因,当时提问者持有不同观点。无论如何,如果你有问题,请直接询问并告诉我具体的问题,而不要评判那些两年前的问题/答案。 - WarrenFaith
非常抱歉,我并不是有意无礼。可能是因为我的英语有点差。您介意在答案中更新“P.S”部分的解决方案吗? - stackunderflow
@Dagon 我很乐意提供帮助,但除了错误之外没有提供任何详细信息,所以我不知道该如何帮忙。如果你有类似的问题,也许可以创建一个问题并指向我,这样我就可以看一下? - WarrenFaith

0

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

如果你正在使用集成代码,那么 requestCode 实际上将是 0xC0DE。但是,如果你只是使用项目中的 IntentIntegrator.parseActivityResult(),你不需要担心这些细节并确保它们正确。请参阅 javadoc,其中显示了如何完全使用此功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接