如果你希望生成的二维码名片可以被智能设备识别,并可以直接导入到通讯录中,那么就应遵循某种标准格式。常见的是生成vcard标准格式。
一个简单的vcard名片格式例子参考如下:
二维码名片
生成名片二维码,通过扫描,可以马上把联系人添加到手机通讯录里
二维码中文本格式如下:
BEGIN:VCARD
VERSION:3.0
FN:任侠
TEL;CELL;VOICE:15201280000
TEL;WORK;VOICE:010-62100000
TEL;WORK;FAX:010-62100001
EMAIL;PREF;INTERNET:lzw#lzw.me
URL:http://lzw.me
orG:志文工作室
ROLE:产品部
TITLE:CTO
ADR;WORK;POSTAL:北京市朝阳区北四环中路35号;100101
REV:2012-12-27T08:30:02Z
END:VCARD
常见数据类型的手机二维码生成与识别格式参考 (转)
随着智能设备的普及,二维码(2D barcode or QR code=Quick reference code)的使用越来越广泛,用智能手机拍下二维码就方便地获取网址、手机号码以及个人名片等有用的信息。本文将要介绍的是可被一般智能设备识别的二维码数据存储格式。
1. 网址 (URL)
包含网址的二维码是当前应用使用最广泛的(例如:http://lzw.me),二维码识别软件能够通过 http://前缀识别该数据代表一个网址。使用{URLTO:www.zhiwenweb.cn} 类似的语法格式也可产生同样的效果。
2. 电子邮箱地址(E-mail Address)
电子邮箱基本上是每个互联网用户必备的沟通方式之一,二维码保存可识别的电子邮箱地址(例如webmaster@zhiwenweb.com)的语法格式是{mailto:webmaster@zhiwenweb.com}。
3. 电话号码 (telephone numbers)
电话号码的二维码数据格式很简单:{tel:13955555555}。如果是家用或办公固话则需要加上区号,需要和海外联系的朋友则需加上中国国家代码+86。
4. 联系人名片(Contact information)
适合以二维码识别的联系人名片数据格式有多种,其中vcard(电子名片)是一种最常见的格式。相对于其他数据类型来说,联系人名片的格式要复杂的多。
1>. MECARD
当前大部分的二维码识别软件,一般都支持由日本的docomo公司制定的MECARD数据格式。MECARD是一种相对较为简单的格式,一个示例如下:
MECARD:N:ren,xia;ADR:beijing,beijing,china;TEL:+865558888888; EMAIL:webmaster@zhiwenweb.com;URL:http://lzw.me;QQ:12345678;;
2>. BIZCARD
这种数据格式和MECARD类似,似乎比MECARD更加简单。一个可供参考的例子如下:
BIZCARD:N:xia;X:ren;T:Software Engineer;C:sina;A:chaoyang, beijing, China 100101;B:+8655555555;E:webmaster@zhiwenweb.cn;;
3>. vCard
一种很常用的电子名片数据格式。从windows的地址簿到linux的联系人;手机、PC皆能兼容,语法比较烦琐。可参考该文:
php生成二维码方法及二维码名片的生成格式vcard介绍
http://lzw.me/Category/Learning/php-qrcode-vcard.html
5. 短信(SMS)
语法格式:
{smsto:13800138000:你好,我来自志文工作室}
6. 彩信(MMS)
和短信的格式类似:
{mmsto:13800138000:你好,我来自志文工作室}
7. 地理位置(Geographic information)
和朋友一起分享你现在的位置,无疑是个很有用的功能。例如查看google公司在美国纽约的位置:北纬40.71872,西经73.98905;高度为100米。语法格式:
{geo:40.71872,-73.98905,100}
8. 获取安卓软件
在google的安卓市场找软件,可以使用应用市场软件识别并进行软件搜索,例如微信的格式:
{market://details?id=com.tencent.mm}
9.获取Wifi配置(Android)
{WIFI:T:WPA;S:mynetwork;P:mypass;;}
相关参数说明
1 | 参数 例子 说明 |
2 | T WPA 认证类型: WEP 或WPA, ‘nopass’ 代表无需认证 |
3 | S network 无线网络的 SSID. (例如 “ABCD”) |
4 | P mypass 无线网络的密码,如果无需认证则忽略此项 (例如 “pass”) |
5 | H true 可选。针对隐藏了SSID的网络 |
二维码会议签到思路记录:
开会人员只需通过手机中的二维码或者电子门票,扫描二维码凭证,系统会快速识别记录参会人员信息,节省签到时间快速完成签到工作。
private int sizeImg=300;
/**
* 用字符串生成二维码
* @param str
* @author zhouzhe@lenovo-cw.com
* @return
* @throws WriterException
*/
private Bitmap create2DCode(String str) throws Exception {
//生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败
Hashtable<EncodeHintType,String> hints = new Hashtable<EncodeHintType,String>();
hints.put(EncodeHintType.CHARACTER_SET, "gbk");//解决中文乱码
BitMatrix matrix = new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, sizeImg, sizeImg,hints);
info(str);
int width = matrix.getWidth();
int height = matrix.getHeight();
//二维矩阵转为一维像素数组,也就是一直横着排了
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if(matrix.get(x, y)){
pixels[y * width + x] = 0xff000000;
}
}
}
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
//通过像素数组生成bitmap,具体参考api
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
}