发明内容
本发明提供一种在移动终端上识别二维码的方法和装置,能够识别两种以上类型的电话本条码。
为解决上述技术问题,本发明提供了如下技术方案:
一种在移动终端上识别二维码的方法,包括:
获取待识别的二维码图片中首关键字;
在本地预先存储的二维码电话本的类型关键字中,查找是否有所述获取到的首关键字;
如果查找到有所述获取到的首关键字,从本地预先设置的每个电话本类型的项目关键字,获取所述查找到的首关键字所对应的目的二维码电话本类型中的项目关键字;
根据所述目的二维码电话本类型中的项目关键字,对所述待识别的二维码电话本中的次关键字进行匹配;
如果匹配成功,则将所述待识别的二维码电话本中的次关键字所标识的电话本信息识别为与其匹配的项目关键字所对应的项目信息;
显示所述获取到的项目信息。
优选的,所述方法还包括:
如果未查找到所述获取到的首关键字,获取所述待识别电话本的电话本信息的格式;
将所述待识别电话本的电话本信息的格式与本地预先记录的二维码电话本类型中项目的格式进行匹配,确定所述待识别电话本的电话本中的项目以及项目的排序;
按照所述确定的项目的排序顺序,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述确定的项目的格式的字段;
按照所述确定的项目的排序顺序,将划分得到的字段中的电话本信息依次识别为所述确定的项目所对应的项目信息。
优选的,所述方法还包括:
如果在未查找到所述获取到的首关键字或者对所述待识别的二维码电话本中的次关键字匹配失败,按照所述目的二维码电话本类型中项目的排序顺序,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述目的二维码电话本类型中各项目的格式的字段;
按照所述目的二维码电话本类型中项目信息的排序顺序,将划分得到的字段中的电话本信息依次识别为目的二维码电话本类型的项目信息。
优选的,所述本地预先存储的二维码电话本类型的关键字包括如下字符串:“PB:”、“VCARD:”和“MECARD:”。
一种在移动终端上识别二维码的识别装置,包括:
第一获取模块,用于获取待识别的二维码图片中首关键字;
查找模块,与所述第一获取模块相连,用于在本地预先存储的二维码电话本的类型关键字中,查找是否有所述获取到的首关键字;
第二获取模块,与所述查找模块相连,用于在查找到有所述获取到的首关键字时,从本地预先设置的每个电话本类型的项目关键字,获取所述查找到的首关键字所对应的目的二维码电话本类型中的项目关键字;
匹配模块,与所述第二获取模块相连,用于根据所述目的二维码电话本类型中的项目关键字,对所述待识别的二维码电话本中的次关键字进行匹配;
第一识别模块,与所述匹配模块相连,用于在匹配成功时,将所述待识别的二维码电话本中的次关键字所标识的电话本信息识别为与其匹配的项目关键字所对应的项目信息;
显示模块,与所述第一识别模块相连,用于显示所述获取到的项目信息。
优选的,所述装置还包括:
第三获取模块,与所述查找模块相连用于在未查找到所述获取到的首关键字时,获取所述待识别电话本的电话本信息的格式;
确定模块,与所述第三获取模块相连,用于将所述待识别电话本的电话本信息的格式与本地预先记录的二维码电话本类型中项目的格式进行匹配,确定所述待识别电话本的电话本中的项目以及项目的排序;
第一划分模块,与所述确定模块相连,用于按照所述确定的项目的排序顺序,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述确定的项目的格式的字段;
第二识别模块,与所述第一划分模块和所述显示模块相连,用于按照所述确定的项目的排序顺序,将划分得到的字段中的电话本信息依次识别为所述确定的项目所对应的项目信息。
优选的,所述装置还包括:
第二划分模块,与所述匹配模块相连,用于在对所述待识别的二维码电话本中的次关键字匹配失败,按照所述目的二维码电话本类型中项目的排序顺序时,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述目的二维码电话本类型中各项目的格式的字段;
第三识别模块,与所述第二划分模块和所述显示模块相连,用于按照所述目的二维码电话本类型中项目信息的排序顺序,将划分得到的字段中的电话本信息依次识别为目的二维码电话本类型的项目信息。
优选的,所述本地预先存储的二维码电话本类型的关键字包括如下字符串:“PB:”、“VCARD:”和“MECARD:”。
本发明提供的方法实施例,通过本地预先存储的多种二维码电话本的识别信息,通过对接收的二维码图片内关键字的处理,能够识别多种二维码电话本的内容。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。
图1为本发明提供的在移动终端上识别二维码的方法实施例的流程示意图。图1所示方法实施例包括:
步骤101、获取待识别的二维码图片中首关键字;
步骤102、在本地预先存储的二维码电话本的类型关键字中,查找是否有所述获取到的首关键字;
步骤103、如果查找到有所述获取到的首关键字,从本地预先设置的每个电话本类型的项目关键字,获取所述查找到的首关键字所对应的目的二维码电话本类型中的项目关键字;
步骤104、根据所述目的二维码电话本类型中的项目关键字,对所述待识别的二维码电话本中的次关键字进行匹配;
步骤105、如果匹配成功,则将所述待识别的二维码电话本中的次关键字所标识的电话本信息识别为与其匹配的项目关键字所对应的项目信息;
步骤106、显示所述获取到的项目信息。
本发明提供的方法实施例,通过本地预先存储的多种二维码电话本的识别信息,通过对接收的二维码图片内关键字的处理,能够识别多种二维码电话本的内容。
下面对本发明提供的方法实施例作进一步介绍:
首先对二维电话本进行简单介绍:
二维码电话本中包括多个项目,例如姓名、手机号码、办公室电话、个人主页和地址信息等,其中每个项目都有一个与其一一对应的关键字,用于标识该项目记录的是哪种信息,如用关键字A来表示该项目记录的信息为姓名等。当然,由于二维码电话本的类型有很多种,所以每种类型中对同一信息会采用不同的关键字来标识,如姓名这个项目在电话本类型1中用关键字A来标识,但在电话本类型2中可能会有B来标识,所以二维码电话本中还包括一个用于标识电话本类型的关键字,其位于所有用于标识项目信息的关键字之前,所以将用于标识电话本类型的关键字称为首关键字,用于标识项目信息的关键字称为次关键字。
本发明所指的移动终端至少具有如下简单功能,包括:
具有拍照摄像功能;具有电话本应用,可以成功保存或者显示识别出的电话本信息。
以在具有如上功能的移动终端上识别二维码的过程为例进行说明:
图2为本发明提供的在移动终端上识别二维码的方法应用实例的流程示意图。图2所示方法应用实例包括:
步骤201、获取二维码电话本;
步骤202、判断本地预先设置的二维码电话本的类型关键字是否包括属性信息中的首关键字;
在本步骤中,由于二维码电话本的类型关键字根据不同的协议,规定的关键字不尽相同,比如OMA标准中定义电话本类型二维条码的关键字为“PB:”,而在其他协议中规定电话本的关键字为“VCARD:”或“MECARD:”,本系统会同步支持各种协议中的电话本类型的关键字,从而支持不同类型的电话本二维条码。
如果能够查找到,则表示能够识别出该二维码电话本的类型,执行步骤203~207;否则,表示不能识别出该二维码电话本的类型,执行步骤208~211。
下面首先对步骤202查找到所述获取到的首关键字时的处理进行说明:
步骤203、从本地预先设置的每个电话本类型的项目关键字,获取所述查找到的首关键字所确定的类型的项目关键字。
其中所述项目关键字包括电话号码、姓名、邮件地址、家庭住址和个人主页中的至少两个。
步骤204、根据所述确定的电话本类型中的项目关键字,判断是否能够与所述待识别的二维码电话本中的次关键字进行匹配。
即判断两者的项目关键字是否相同,且排序顺序是否一致;
如果匹配成功,则表示已识别出该待识别的二维码电话本有哪些项目,以及该项目的排列顺序,则执行步骤205;否则,执行步骤206~207。
例如,一个电话本中项目关键字包括D和F,分别表示姓名和手机号码,如果待识别的二维码电话本中的项目关键字也为D和F,则判断匹配成功;否则,判断匹配失败。
步骤205、将所述待识别的二维码电话本中的次关键字所标识的电话本信息识别为与其匹配的项目关键字所对应的项目信息。
以步骤204中匹配成功的例子进行说明,D和F,分别表示姓名和手机号码,而待识别的二维码电话本中的项目关键字D对应的信息为张三,项目关键字F对应信息为13800xxxxxx,则识别姓名为张三,手机号码为13800xxxxxx。
在执行完步骤205后,执行步骤212显示所述获取到的项目信息。
步骤206、按照所述目的二维码电话本类型中项目的排序顺序,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述目的二维码电话本类型中各项目的格式的字段;
例如,目的二维码电话本类型中项目的排序顺序为姓名+电话号码,其中项目的格式信息为中文汉字或英文,电话号码的格式信息为11位数字,而得到的字符串为张三13800xxxxxx,那么依照项目排列顺序可以将这个字符串划分成两段,分割的位置为11个数字之前,即张三//13800xxxxxx,得到两个字段,分别为“张三”和“13800xxxxxx”。
步骤207、按照所述确定的电话本类型中项目信息的排序顺序,将划分得到的字段中的电话本信息依次识别为目的二维码电话本类型的项目信息。
在步骤207执行完成后,执行步骤212显示所述获取到的项目信息。
下面对步骤202未查找到所述获取到的首关键字时的处理进行说明:
步骤208、获取所述待识别电话本的电话本信息的格式;
在本步骤中,获取的信息包括:是否有11个连续的字符串,是否有字符串“@XXX.com”,是否有字符串“http:”以及是否有连续的中文或英文字符串。例如,得到的电话本中的字符串为张三13800xxxxxx XXX@sina.com,得到的格式信息为中文字符串+11位数字+@sina.com。
步骤209、将所述待识别电话本的电话本信息的格式与本地预先记录的二维码电话本类型中项目的格式进行匹配,确定所述待识别电话本的电话本中的项目以及项目的排序;
在本步骤中,如果有11个连续的字符串,则确定有手机号码,如果有字符串“@XXX.com”,确定有邮箱地址;如果有字符串“http:”,确定有个人主页信息,如果有连续的中文或英文字符串,表示有姓名或家庭住址。
以步骤208所举例子进行说明,可以确定的项目及项目的顺序为姓名+手机号码+个人邮箱。
步骤210、按照所述确定的项目的排序顺序,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述确定的项目的格式的字段;
以步骤208所举例子进行说明,划分成的字段如下:
张三//13800xxxxxx//XXX@sina.com
步骤211、按照所述确定的项目的排序顺序,将划分得到的字段中的电话本信息依次识别为所述确定的项目所对应的项目信息。
以步骤208所举例子进行说明,项目的顺序为姓名+手机号码+个人邮箱;划分的字段为“张三”、“13800xxxxxx”和“XXX@sina.com”,得到姓名为张三、手机号码为13800xxxxxx,个人邮箱为XXX@sina.com。
在步骤211执行完成后,执行步骤212显示所述获取到的项目信息。
本发明提供的方法,通过本地预先存储的多种二维码电话本的识别信息,通过对接收的二维码图片内关键字的处理,能够识别多种二维码电话本的内容。
进一步的,通过对项目的顺序和/或格式的识别,在根据现有规定的关键字匹配失败后仍然能够识别出电话本的项目信息。
图3为本发明提供的在移动终端上识别二维码的识别装置实施例的结构示意图。结合图1和图2所示的方法。图3所示装置还包括:
第一获取模块301,用于获取待识别的二维码图片中首关键字;
查找模块302,与所述第一获取模块相连,用于在本地预先存储的二维码电话本的类型关键字中,查找是否有所述获取到的首关键字;
第二获取模块303,与所述查找模块相连,用于在查找到有所述获取到的首关键字时,从本地预先设置的每个电话本类型的项目关键字,获取所述查找到的首关键字所对应的目的二维码电话本类型中的项目关键字;
匹配模块304,与所述第二获取模块相连,用于根据所述目的二维码电话本类型中的项目关键字,对所述待识别的二维码电话本中的次关键字进行匹配;
第一识别模块306,与所述匹配模块相连,用于在匹配成功时,将所述待识别的二维码电话本中的次关键字所标识的电话本信息识别为与其匹配的项目关键字所对应的项目信息;
显示模块306,与所述第一识别模块相连,用于显示所述获取到的项目信息。
其中图3所示实施例中装置还包括:
第三获取模块,与所述查找模块相连用于在未查找到所述获取到的首关键字时,获取所述待识别电话本的电话本信息的格式;
确定模块,与所述第三获取模块相连,用于将所述待识别电话本的电话本信息的格式与本地预先记录的二维码电话本类型中项目的格式进行匹配,确定所述待识别电话本的电话本中的项目以及项目的排序;
第一划分模块,与所述确定模块相连,用于按照所述确定的项目的排序顺序,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述确定的项目的格式的字段;
第二识别模块,与所述第一划分模块和所述显示模块相连,用于按照所述确定的项目的排序顺序,将划分得到的字段中的电话本信息依次识别为所述确定的项目所对应的项目信息。
其中图3所示实施例中装置还包括:
第二划分模块,与所述匹配模块相连,用于在对所述待识别的二维码电话本中的次关键字匹配失败,按照所述目的二维码电话本类型中项目的排序顺序时,将所述待识别的二维码电话本的电话本信息依次划分成多个符合所述目的二维码电话本类型中各项目的格式的字段;
第三识别模块,与所述第二划分模块和所述显示模块相连,用于按照所述目的二维码电话本类型中项目信息的排序顺序,将划分得到的字段中的电话本信息依次识别为目的二维码电话本类型的项目信息。
其中所述本地预先存储的二维码电话本类型的关键字包括如下字符串:“PB:”、“VCARD:”和“MECARD:”。
本发明提供的方法实施例,通过本地预先存储的多种二维码电话本的识别信息,通过对接收的二维码图片内关键字的处理,能够识别多种二维码电话本的内容。
进一步的,通过对项目的顺序和/或格式的识别,在根据现有规定的关键字匹配失败后仍然能够识别出电话本的项目信息。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。