我成功地使用zxing来扫描代码,通过调用安装的条形码读取器的意图,但是当它发出哔声并表示良好的扫描时,我期望zxing活动会返回控制,所以我可以处理结果,但是它坐在那里并尝试再次扫描.我必须按后退按钮,然后返回,我可以做下一步.当我打电话给扫描仪时,有没有一些明显的标志?
任何建议感激不尽.非常感谢.
这是我的代码:
public boolean onTouchEvent(final MotionEvent event) { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE","QR_CODE_MODE"); startActivityForResult(intent,0); return true; } public void onActivityResult(int requestCode,int resultCode,Intent intent) { super.onActivityResult(requestCode,resultCode,intent); if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); // Handle successful scan String s = "http://www.google.com/search?q="; s += contents; Intent myIntent1 = new Intent(Intent.ACTION_VIEW,Uri.parse(s)); startActivity(myIntent1); } else if (resultCode == RESULT_CANCELED) { // Handle cancel } } } }
解决方法
为什么不使用提供的IntentIntegrator类?这是项目文件中提到的唯一方法,你看过这些吗?
https://github.com/zxing/zxing/wiki/Scanning-Via-Intent
我创建它来包装发送和解析意图的这些细节,所以你不会打字错误.例如,没有额外的“com.google.zxing.client.android.SCAN.SCAN_MODE”这样的东西.