0

ZXing製のバーコードスキャナーアプリにインテントを送信することで、QRコードから返されたデータを正常に取得できるアプリがあります。

ただし、QRコードの形式が電話番号かどうかを解読できるようにして、アプリを改善したいと思っています。QRコードのフォーマット(URL、SMS、電話番号、テキストなど)も取得できますか?

独自のQRコードを作成する人のような抜け穴をスキャンしたくないので、これが必要です。作成を依頼されたシステム用に作成したQRコードは、電話番号形式です。人々はフォーマットとしてテキストを持っている偽造QRコードをすることができるかもしれません。これを回避できるように、アプリでフォーマットを区別できるようにしたいと思います。ありがとうございました!

4

4 に答える 4

3

あなたが本当にバーコードフォーマットを意味するならば、これはまたで返されますIntentSCAN_RESULT_FORMAT「QR_CODE」のような文字列を持つextraを見てください。これらは、の列挙値の名前ですBarcodeFormat

バーコードスキャナーのようにスキャンの結果を解析したい場合は、ResultParserからのクラスを使用してcore/ください。

しかし、これがあなた自身のバーコードを作るのをどのように妨げるのかわかりません。

于 2012-06-01T10:07:44.170 に答える
1

これを使用してみてください:

String codeType = ResultParser.parseResult(result).getType().toString();

ResultParserクラスは、QRコードの結果のタイプ(URL、TEXT、MSGなど)を提供します。

以下のコードを使用して、タイプを比較できます。

if(ResultParser.parseResult(result).getType() == ParsedResultType.ADDRESSBOOK) {
    // Implement your logic
}

ParsedResultType.ADDRESSBOOK代わりに、文字列ではなく列挙型を使用する、つまり、の代わりに使用することを常にお勧めします String type = "addressbook"

于 2018-01-21T14:25:21.077 に答える
0

以下を使用して、QRコードタイプを取得できます。

String type = resultHandler.getResult().getType().toString();

これにより、QRコードのタイプがわかります。たとえば、URI、TEL、SMSなど。

お役に立てれば。

于 2012-11-28T06:59:32.490 に答える
-1

正規表現を使用してフォーマットをテストします。テストする文字列の種類に応じて、オンラインでたくさんの例があるはずです。正規表現の詳細は次のとおりです。http://www.regular-expressions.info/reference.html Java(Android)には、正規表現関数("matcher"および"pattern")が組み込まれています。

于 2012-06-01T04:13:34.620 に答える