3

私は ZXing を初めて使用し、その API を調査しています。ZXing を使用して Android バーコード スキャン アプリを作成し、zxing の使用時にスキャン結果を取得するのを見たことがありますか?

スキャン結果の詳細が文字列「contents」にあることがわかりました。詳細を抽出するにはどうすればよいですか?QR ジェネレータを見ると、http://zxing.appspot.com/generator/には、名前、会社、電話番号などの多くのフィールドがあります。これらの詳細を抽出するにはどうすればよいですか?

私は次のようなものが必要です

//String extractedName = contents.getName() 

申し訳ありませんが、私はこれに非常に慣れていません。誰かが私に詳細な手順を提供していただければ幸いです。ありがとう。

テスト活動

public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
    IntentIntegrator.initiateScan(MenuActivity.this);
}
};


public 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");
        // Handle successful scan
        //How to get name from contents?

    } else if (resultCode == RESULT_CANCELED) {
        // Handle cancel
    }
}
}
4

4 に答える 4

2

無事に抽出できました。スキャン結果は文字列「contents」内にあります。名前とIDでコードをスキャンしたとしましょう。文字列には、空白で区切られた「name」「id」が含まれます。for ループを使用して処理できます。

于 2011-08-30T18:25:37.293 に答える
1

IntentIntegrator でオブジェクトを作成する

protected void onCreate(Bundle savedInstanceState) { <br>
        super.onCreate(savedInstanceState);<br>
        setContentView(R.layout.activity_main);<br>
        new IntentIntegrator(this).initiateScan();<br>
    }

onActivityResult メソッドをオーバーライドする

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent intent) { <br>
        IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);<br>
        if (scanResult != null) {<br>
            TextView t = (TextView) findViewById(R.id.textView2);<br>
            String data[] =scanResult.getContents().split("\n");<br>
            for(String k:data){<br>
                t.append(k+"\n");<br>
            }<br>
        }<br>

        // else continue with any other code you need in the method

    }

これで、getContents メソッドを使用してデータを取得し、そのデータ行を分割しました。次に、そのデータをtextview2に追加しました

于 2015-09-28T17:54:00.647 に答える
1

これらの詳細を抽出するにはどうすればよいですか?

QR コードは、単純に画像形式のファイルです。ファイルを使用する前にファイルの形式を知る必要があるのと同様に、QR コードを使用する前にコンテンツの形式を知る必要があります。

この ZXing Wiki ページには、彼らが見た QR コード コンテンツの種類に関する情報があります。

于 2011-06-04T22:47:59.483 に答える
0

最初に文字列の先頭を確認します。たとえば、「vcard」のようにstartsWith( "xyxy")かどうかを確認します。気をつけて!「vcard」は正しい文字列ではありません!

それがvCardの場合、私はそれをパーツに分割するために使用しました。

String[] vCardContent = content.split("\n");

次のステップは、すべてのパーツが「N:」エイリアス「Name」で始まるかどうかを確認することです。

于 2011-10-05T07:15:29.023 に答える