我正在使用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)
答案 0 :(得分:1)
为什么期望resultCode不是-1
? resultCode
用于确定意图,"为什么"你已经为结果调用了活动。没有更多,没有更少......我会删除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,其中显示了如何完全使用它。