2016-07-15 7 views
1

アンドロイドビジョンAPIを使用してQRコードの生のバイナリデータを取得する方法があるかどうかは知りませんか? 私が読んでいるQRコードには、バイナリデータ(NUL文字を含む)が含まれていますが、完全なバイナリデータブロックが存在するように8ビットエンコーディングで構築されています。 返されたBarcodeオブジェクトは、バイナリデータではなく、rawValueフィールドに「Unknown encoding」という文字列があります。 アイデアありがとう!QRコード - 生のバイナリデータ

+0

QRコードを変更せずにこれを解決できましたか?私はまったく同じ問題に直面していますが、コードを変更することはできません。 – vojta

+0

いいえ、運良く私の場合、コードを生成したソフトウェアも変更できます。それは私が期待したように動作しました。 –

答えて

1

QRコードでエンコーディングが指定されていない(またはデフォルトでは残っている)場合は、自分自身の質問に答えるために、アンドロイドビジョンとzxingライブラリがバイトをutf8に変換するようです。私は、デフォルトのエンコーディングはISO8859-1だと考えましたが、ライブラリはそれを想定していません。 QRコードは、linuxでlibqrencodeを使用して生成されました。生成されたQRコードでECIヘッダーを1に設定すると、アンドロイド・ライブラリーはバイナリー・データを保持します。 したがって、barcodes.valueAt(0).displayValue.getBytes("iso-8859-1"); のバイト配列を読み取ると、正確にエンコードされたバイトが返されます。

+0

私はlibqrencodeと同じQRコードジェネレーターを使用していますが、私は同じ問題がありますが、わかりません。 ECIヘッダーはどこで1に変更されますか? – sh5164