Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于ZXing的Android二维码返回类型提取_Android_Qr Code - Fatal编程技术网

基于ZXing的Android二维码返回类型提取

基于ZXing的Android二维码返回类型提取,android,qr-code,Android,Qr Code,我有一个应用程序,可以通过向ZXing制作的条形码扫描仪应用程序发送意向,成功检索二维码返回的数据 然而,我想通过能够破译二维码的格式是否是电话号码来让应用程序变得更好。是否也可以获取二维码的格式(即URL、SMS、电话号码、文本) 我需要这个,因为我不希望出现像人们创建自己的二维码来扫描这样的漏洞。我为要求我创建的系统创建的二维码具有电话号码格式。人们可以伪造以文本为格式的二维码。我希望应用程序能够区分不同的格式,这样就可以避免这种情况。谢谢大家! 我将使用正则表达式来测试格式。根据要测试的字

我有一个应用程序,可以通过向ZXing制作的条形码扫描仪应用程序发送意向,成功检索二维码返回的数据

然而,我想通过能够破译二维码的格式是否是电话号码来让应用程序变得更好。是否也可以获取二维码的格式(即URL、SMS、电话号码、文本)


我需要这个,因为我不希望出现像人们创建自己的二维码来扫描这样的漏洞。我为要求我创建的系统创建的二维码具有电话号码格式。人们可以伪造以文本为格式的二维码。我希望应用程序能够区分不同的格式,这样就可以避免这种情况。谢谢大家!

我将使用正则表达式来测试格式。根据要测试的字符串类型,应该有大量的在线示例。 以下是有关正则表达式的详细信息:
Java(Android)有内置的正则表达式函数(“matcher”和“pattern”)

我会使用正则表达式来测试格式。根据要测试的字符串类型,应该有大量的在线示例。 以下是有关正则表达式的详细信息:
Java(Android)有内置的正则表达式函数(“matcher”和“pattern”)

如果您真正指的是条形码格式,那么它也会在
意图中返回。查看额外的
SCAN\u RESULT\u FORMAT
,它将有一个类似“QR\u code”的字符串。这些是
BarcodeFormat
中枚举值的名称

如果您想像条形码扫描仪那样解析扫描结果,请使用
core/
中的
ResultParser


但是,我不明白这些是如何阻止你自己制作条形码的。

如果你真的是指条形码格式,这也会在
意图中返回。查看额外的
SCAN\u RESULT\u FORMAT
,它将有一个类似“QR\u code”的字符串。这些是
BarcodeFormat
中枚举值的名称

如果您想像条形码扫描仪那样解析扫描结果,请使用
core/
中的
ResultParser


我看不出这会阻止你自己制作条形码。

你可以使用以下方法获得二维码类型:

String type = resultHandler.getResult().getType().toString();
这将为您提供二维码的类型。例如URI、电话、短信等


希望这能有所帮助。

您可以使用以下方法获取二维码类型:

String type = resultHandler.getResult().getType().toString();
这将为您提供二维码的类型。例如URI、电话、短信等

希望这有帮助。

尝试使用以下方法:

String codeType = ResultParser.parseResult(result).getType().toString();
ResultParser
类将为您提供二维码结果的类型,即:URL、文本、消息等

您可以使用以下代码来比较这些类型:

if(ResultParser.parseResult(result).getType() == ParsedResultType.ADDRESSBOOK) {
    // Implement your logic
}
相反,如果您使用枚举类型而不是字符串,则通常会受到欢迎,即使用
ParsedResultType.ADDRESSBOOK
而不是
string type=“ADDRESSBOOK”
尝试使用以下方法:

String codeType = ResultParser.parseResult(result).getType().toString();
ResultParser
类将为您提供二维码结果的类型,即:URL、文本、消息等

您可以使用以下代码来比较这些类型:

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

相反,如果您使用枚举类型而不是字符串,则总是很受欢迎,即使用
ParsedResultType.ADDRESSBOOK
而不是
string type=“ADDRESSBOOK”

我认为您没有这个问题。问题是:能否提取二维码的类型/格式?我不关心字符串实际返回的内容,我更关心的是能够区分QR码的类型(例如SMS、文本、电话、URL)。我假设您已经阅读了一些有关QR码的文档。二维码是一个字符串,你能从字符串中得到的就是你输入的东西。它没有一种标准化的方式来指示字符串是url还是电话号码或其他内容。但是,您可以将该信息添加到您创建的二维码中的字符串中。如果扫描的代码不是您自己创建的,则该代码没有格式信息。此外,你不能阻止其他人创建干扰你代码的二维码,除非你使用某种类型的哈希和只有你知道的密钥。啊,有一种方法可以判断二维码是URL、数字、短信还是文本。我只需要找出如何直接从意图中得到结果。
String result=intent.getStringExtra(“扫描结果”)
方法给出从二维码解码的内容,而不管二维码的格式/类型。另一方面,parse方法尝试将结果解析为特定类型的信息(即URL、电话号码等)。虽然这是一个很好且非常简单的解决方案,可以阻止人们在系统中四处走动。是的,我很想在中兴的条形码扫描仪中找到一种方法,可以告诉我们二维码类型之间的差异,因为当你使用应用程序扫描二维码时,它会告诉你二维码类型(电话、文本、URL、短信)因为它给出了结果。我认为你没有问题。问题是:能否提取二维码的类型/格式?我不关心字符串实际返回的内容,我更关心的是能够区分QR码的类型(例如SMS、文本、电话、URL)。我假设您已经阅读了一些有关QR码的文档。二维码是一个字符串,你能从字符串中得到的就是你输入的东西。它没有一种标准化的方式来指示字符串是url还是电话号码或其他内容。但是,您可以将该信息添加到您创建的二维码中的字符串中。如果扫描的代码不是您自己创建的,则该代码没有格式信息。此外,你不能阻止其他人创建干扰你代码的二维码,除非你使用某种类型的哈希和只有你知道的密钥。啊,有一种方法可以判断二维码是URL、数字、短信还是文本。我只需要找出如何直接从意图中得到结果。<