首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于ZXing的安卓二维码返回类型提取

基于ZXing的安卓二维码返回类型提取
EN

Stack Overflow用户
提问于 2012-06-01 09:43:04
回答 4查看 3.8K关注 0票数 0

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

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-01 18:07:44

如果您真的指的是条形码格式,这也会在Intent中返回。看看extra SCAN_RESULT_FORMAT,它会有一个类似"QR_CODE“的字符串。这些是BarcodeFormat中枚举值的名称。

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

不过,我并不认为这会阻止你自己创建条形码。

票数 3
EN

Stack Overflow用户

发布于 2018-01-21 22:25:21

尝试使用以下命令:

代码语言:javascript
复制
String codeType = ResultParser.parseResult(result).getType().toString();

ResultParser类将为您提供二维码结果的类型,即:网址、文本、消息等。

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

代码语言:javascript
复制
if(ResultParser.parseResult(result).getType() == ParsedResultType.ADDRESSBOOK) {
    // Implement your logic
}

相反,我们总是希望您使用枚举类型而不是字符串,即使用ParsedResultType.ADDRESSBOOK而不是String type = "addressbook"

票数 1
EN

Stack Overflow用户

发布于 2012-11-28 14:59:32

您可以使用以下命令获取二维码类型:

代码语言:javascript
复制
String type = resultHandler.getResult().getType().toString();

这将为您提供二维码的类型。例如URI、电话、SMS等。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10843417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档