如何使用QRGEncoder生成包含5条以上数据信息的QR二维码
QRGEncoder传参错误解决方案
你当前报错的核心原因是QRGEncoder构造函数的第一个参数仅支持传入单条内容对象,不支持分开传入多个字段,你可以根据需求选择以下两种实现方案:
方案1:合并为普通文本字符串(最简单,扫二维码直接显示文字)
将三个字段按照你需要的展示格式拼接为单个字符串后传入即可,示例代码:
// 拼接所有信息为单个字符串 String qrContent = "姓名:" + first + "\n联系电话:" + phones + "\n联系地址:" + textaddress; // 替换原有的QRGEncoder构造语句 qrgEncoder = new QRGEncoder( qrContent, null, QRGContents.Type.TEXT, smallerDimension);
方案2:组装为结构化哈希结构(生成可直接存入通讯录的联系人二维码)
如果需要生成结构化的联系人二维码,可以将字段存入键值对结构后拼接为标准vCard格式传入,扫描后手机可直接识别为联系人信息:
// 组装vCard格式的结构化内容 String contactContent = "BEGIN:VCARD\n" + "VERSION:3.0\n" + "FN:" + first + "\n" + "TEL;TYPE=CELL:" + phones + "\n" + "ADR;TYPE=HOME:" + textaddress + "\n" + "END:VCARD"; // 构造时指定类型为联系人 qrgEncoder = new QRGEncoder( contactContent, null, QRGContents.Type.CONTACT, smallerDimension);
如果你使用的库版本支持直接传入Bundle作为内容,也可以通过Bundle组装键值对:
Bundle contactBundle = new Bundle(); contactBundle.putString("name", first); contactBundle.putString("phone", phones); contactBundle.putString("address", textaddress); // 转换为库支持的内容格式后传入构造函数即可
内容的提问来源于stack exchange,提问作者gebe
相关产品推荐
相关产品推荐

