2012-06-27 51 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