使用 ZXing 在 Android 上对联系人信息 (MeCard) 进行编码

Posted

技术标签:

【中文标题】使用 ZXing 在 Android 上对联系人信息 (MeCard) 进行编码【英文标题】:Encode contact info (MeCard) on Android using ZXing 【发布时间】:2011-10-25 02:07:07 【问题描述】:

我需要使用MeCard 格式的联系信息创建二维码。我需要对以下字段进行编码:

姓名 (N:) 网址(网址:) 注意(注意:)

我可以使用 ZXing QR Code Generator 正确创建所有 3 个字段(这是下面示例中的 generated QR code)。但是它不适用于 android 模拟器上的 ZXing 应用程序。我正在使用这个 sn-p:

Intent i = new Intent("com.google.zxing.client.android.ENCODE");
Bundle data = new Bundle();
data.putString(Contacts.Intents.Insert.NAME, "name1");
data.putString("url", "http://www");
//data.putString(Contacts.Intents.Insert.POSTAL, "http://www");
data.putString(Contacts.Intents.Insert.NOTES, "xyz");
i.putExtra("ENCODE_TYPE", "CONTACT_TYPE");
i.putExtra("ENCODE_DATA", data);
startActivity(i);

结果:ZXing 应用只编码name 字段。

1.) 我该如何解决这个问题? 希望不要在名称字段中转储所有内容。

2.) 是否有任何替代库支持编码? ZXing 似乎是最受欢迎的。

【问题讨论】:

注意:您现在可以分别使用URL_KEYNOTE_KEY 作为intent 中extra 的键对URL 和NOTE 字段进行编码。 【参考方案1】:

你没有做错什么,只是 Intent 不支持注释或 URL。

【讨论】:

欢迎您提供补丁!它是开源的。 code.google.com/p/zxing【参考方案2】:

可以对 url 进行编码。 只需使用: data.putString("email","http://www.xyz.com");

【讨论】:

以上是关于使用 ZXing 在 Android 上对联系人信息 (MeCard) 进行编码的主要内容,如果未能解决你的问题,请参考以下文章

Android扫描二维码(基于华为HMS Core)

android zxing扫码 扫描二维码有对焦的黄点怎么去除

(转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

在Android手机上对https请求进行抓包

在Android手机上对https请求进行抓包

Android二维码工具zxing使用