Android で ZBar SDK を使用して書籍をスキャンし、ISBN を取得するアプリケーションを作成しています。私は物理的な面ですべてを機能させることができました。ボタンを押すと、スキャナー ウィンドウがポップアップ表示され、バーコードがスキャンされます。
問題は、アプリケーションがスキャナから ISBN を取得したときに発生します。スキャナがバーコードを正しく読み取っていないか、正しいデータを取得していないようです。この問題を解決する方法を知っている人はいますか? ありがとう。以下は関連するコードといくつかの画面です
@Override
public void onClick(View v)
{
//TODO add functionallity
if(v.getId() == R.id.ScanButton)
{
Intent intent = new Intent(this, ZBarScannerActivity.class);
intent.putExtra(ZBarConstants.SCAN_MODES, new int[]{Symbol.ISBN10, Symbol.ISBN13, Symbol.EAN8, Symbol.EAN13 });
startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK)
{
// Scan result is available by making a call to data.getStringExtra(ZBarConstants.SCAN_RESULT)
// Type of the scan result is available by making a call to data.getStringExtra(ZBarConstants.SCAN_RESULT_TYPE)
contentText.setText("ISBN: " + data.getStringExtra(ZBarConstants.SCAN_RESULT));
Toast.makeText(this, "Scan Result = " + data.getStringExtra(ZBarConstants.SCAN_RESULT), Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Scan Result Type = " + data.getStringExtra(ZBarConstants.SCAN_RESULT_TYPE), Toast.LENGTH_SHORT).show();
// The value of type indicates one of the symbols listed in Advanced Options below.
}
else if(resultCode == RESULT_CANCELED)
{
Toast.makeText(this, "Scanning Cancelled", Toast.LENGTH_SHORT).show();
}
}