2012-06-27 132 views
0

我想扫描按钮点击QR码,问题是,当我在我的设备操作结果意向变量运行代码总是返回0条码Rearder斑马线

我怎么知道,如果条形码阅读器的工作?我目前在设备的屏幕上看到黄点。

这里是我的代码:

private OnClickListener scanner = new OnClickListener() { 
    public void onClick(View v) { 
     IntentIntegrator.initiateScan(BarCodeScannerActivity.this); 
    } 
}; 

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (scanResult != null) { 
      // handle scan result 
      String s = "http://www.google.com/search?q="; 
      s += scanResult.getContents(); 

      Intent myIntent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(s)); 
      startActivity(myIntent1); 
    } 

感谢

+0

你可能想要看看这个,你可能需要添加更多参数initiateScan:http://stackoverflow.com/a/4714083/67566 –

+0

它不适合我 – sara

+0

我这样做,而不使用IntentIntegrator,所以不确定最好的方法。 –

回答

2

你必须在代码中的错误

你应该有

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (result != null) { 
     String contents = result.getContents(); 
     if (contents != null) { 
     showDialog(R.string.result_succeeded, result.toString()); 
     } else { 
     showDialog(R.string.result_failed, getString(R.string.result_failed_why)); 
     } 
    } 
    } 

你是不是重写onActivityResultonCreateonStart

相反,你正在写的onActivityResult像正常的方法这是最常见的错误。

此外,如果你可以提及integrator.initiateScan(IntentIntegrator.QR_CODE_TYPES);integrator.initiateScan(IntentIntegrator.PRODUCT_CODE_TYPES);这将是伟大的。

+0

integrator.initiateScan(IntentIntegrator.QR_CODE_TYPES);给出的错误只接受活动名称 – sara

+0

我对此感到生气,然后发布了关于'@ Overrride',很大的帮助和'initiateScan(IntentIntegrator.PRODUCT_CODE_TYPES);'的很好的工作,但请记住它的确如此提供参数时不返回任何内容 – Hoku