用于NFC卡模拟模式的选卡方法、芯片、终端和存储介质与流程

文档序号:23262495发布日期:2020-12-11 18:51阅读:484来源:国知局
用于NFC卡模拟模式的选卡方法、芯片、终端和存储介质与流程

本申请实施例涉及近场通信技术领域,特别涉及一种用于nfc卡模拟模式的选卡方法、芯片、终端和存储介质。



背景技术:

近场通信(nearfieldcommunication,简称:nfc)技术,允许设备之间进行非接触式点对点数据传输。由于nfc具有较高的安全性,因此,近年来越来越被大众欢迎和接受。其中具备nfc功能的终端的发展尤为迅速。目前,具备nfc功能的终端一般可以工作于三种模式:读卡器模式,卡模拟模式,点对点模式。其中,卡模拟模式即终端可以模拟为一张非接触集成电路(integratedcircuit,ic)卡,用户手持终端便可与读卡器进行交互,以完成刷银行卡、刷公交卡或刷门禁卡等操作,给生活带来很多便利。目前,使用手持终端(比如手机)模拟智能卡的刷卡业务过程中,需要使用者在刷卡之前进行一系列操作,这些操作如下:首先,点亮手机屏幕,并进入选卡程序;然后,选择一张卡进行接下来的刷卡;最后,将手机靠近刷卡设备,利用选择的卡进行刷卡。

然而,发明人发现相关技术中至少存在如下问题:使用者在刷卡之前进行的上述一系列的操作,为用户使用模拟的智能卡进行刷卡产生了一些不便利,刷卡的便捷性较低。



技术实现要素:

本申请实施方式的目的在于提供一种用于nfc卡模拟模式的选卡方法、芯片、终端和存储介质,使得可以减少用户操作,提高刷卡的便捷性。

为解决上述技术问题,本申请的实施方式提供了一种用于nfc卡模拟模式的选卡方法,包括:在检测到终端进入读卡器的射频范围后,获取对所述终端内的各个候选智能卡进行分组得到的若干候选智能卡组;对所述若干候选智能卡组进行是否满足过滤条件的判断,获取符合所述过滤条件的各个待选智能卡组;确定所述各个待选智能卡组的优先级;根据所述各个待选智能卡组的优先级从高到低的顺序,依次遍历所述各个待选智能卡组,并根据当前遍历到的待选智能卡组的信息,尝试与所述读卡器建立通信连接;若根据当前遍历到的待选智能卡组的信息,与所述读卡器成功建立通信连接,根据所述当前遍历到的待选智能卡组确定目标智能卡,并通过所述目标智能卡与所述读卡器进行刷卡操作。

本申请的实施方式还提供了一种用于nfc卡模拟模式的选卡方法,包括:在检测到终端进入读卡器的射频范围后,对所述终端内的各个候选智能卡进行是否满足过滤条件的判断,获取符合所述过滤条件的各个待选智能卡;确定所述各个待选智能卡的优先级;根据所述各个待选智能卡的优先级从高到低的顺序,依次遍历所述各个待选智能卡,并根据当前遍历到的待选智能卡的信息,尝试与所述读卡器建立通信连接;若根据当前遍历到的待选智能卡的信息,与所述读卡器成功建立通信连接,通过所述当前遍历到的待选智能卡与所述读卡器进行刷卡操作。

本申请的实施方式还提供了一种芯片,所述芯片位于终端内且与所述终端内的存储器连接,所述存储器存储有可被所述芯片执行的指令,所述指令被所述芯片执行,以使所述芯片能够执行上述的用于nfc卡模拟模式的选卡方法。

本申请的实施方式还提供了一种终端,包括:上述的芯片,以及与所述芯片连接的存储器。

本申请的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的用于nfc卡模拟模式的选卡方法。

本申请的实施方式中,在检测到终端进入读卡器的射频范围后,即用户接近读卡器后,无需点亮终端的屏幕,进入选卡程序,人工选择智能卡进行刷卡,有利于减少用户操作,提高刷卡的便捷性。而且,对若干候选智能卡组进行是否满足过滤条件的判断,即以组为单位进行过滤,有利于提高过滤的速度,得到符合过滤条件的各个待选智能卡组,有利于缩小遍历范围,提高遍历速度,从而提高选卡速度。通过各个待选智能卡组的优先级从高到低的顺序依次遍历各个待选智能卡组,有利于以合理的顺序依次根据各个待选智能卡组的信息,尝试与读卡器建立通信连接,有利于减小尝试的次数,快速的成功与读卡器建立通信连接,从而进一步提高选卡的速度。

另外,所述获取对所述终端内的各个候选智能卡进行分组得到的若干候选智能卡组,包括:根据所述终端内的各个候选智能卡的用于建立通信连接的参数,对所述各个候选智能卡进行分组,得到若干候选智能卡组;其中,同一所述候选智能卡组内的候选智能卡的用于建立通信连接的参数不存在冲突。也就是说,根据各候选智能卡的用于建立通信连接的参数是否存在冲突,对各候选智能卡进行分组,将用于建立通信连接的参数不存在冲突的候选智能卡分为一组,有利于提高分组的合理性。

另外,所述筛选条件包括:所述终端的地理位置满足所述候选智能卡的地理位置需求,和/或,所述候选智能卡所属的安全单元允许被激活。也就是说,本申请的实施方式中筛选出地理位置需求可以被满足的智能卡和/或所属的安全单元允许被激活的智能卡,过滤掉地理位置需求不被满足的智能卡和/或所属的安全单元不允许被激活的智能卡,有利于将候选智能卡的数量控制在合理的范围内,在不影响与读卡器建立通信连接的成功率的同时提高与读卡器成功建立通信连接的速度。

另外,所述过滤条件包括:所述候选智能卡组中至少存在一个候选智能卡的nfc技术类型属于所述读卡器支持的nfc技术类型,和/或,所述候选智能卡组中至少存在一个候选智能卡的卡类型属于所述读卡器支持的卡类型。也就是说,过滤掉不包含读卡器支持的nfc技术类型的候选智能卡的候选智能卡组,和/或,不包含读卡器支持的卡类型的候选智能卡的候选智能卡组,有利于合理的对候选智能卡组进行过滤,提高了过滤后得到的待选智能卡组与读卡器能够成功建立通信连接的可能性。

另外,所述待选智能卡组的信息包括:所述待选智能卡组的用于建立通信连接的参数,所述待选智能卡组的用于建立通信连接的参数为:对所述待选智能卡组中的各待选智能卡的用于建立通信连接的参数进行合并后得到的合并参数。也就是说,将同一待选智能卡组中的待选智能卡的用于建立通信连接的参数进行合并,得到待选智能卡组对应的用于建立通信连接的参数,然后,根据待选智能卡组对应的用于建立通信连接的参数即合并参数,尝试与读卡器建立通信连接,在一定程度上有利于减少尝试建立通信连接的次数,无需基于待选智能卡组中的每个待选智能卡的用于建立通信连接的参数均进行一次尝试建立通信连接的过程,有利于提高与读卡器成功建立通信连接的速度。

另外,若遍历完所述各个待选智能卡组后,仍未与所述读卡器成功建立通信连接,所述方法还包括:发出选卡失败的通知信息;和/或,弹出预设的用于供用户选择智能卡的选卡界面。也就是说,如果自动选卡失败,可以发出通知信息以通知用户,方便用户得知当前选卡失败的结果,和/或,弹出预设的用于供用户选择智能卡的选卡界面,有利于提升用户的使用体验。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。

图1是根据本申请第一实施例中的用于nfc卡模拟模式的选卡方法的流程图;

图2是根据本申请第二实施例中的用于nfc卡模拟模式的选卡方法的流程图;

图3是根据本申请第二实施例中的实现用于nfc卡模拟模式的选卡方法的模块示意图;

图4是根据本申请第三实施例中的用于nfc卡模拟模式的选卡方法的流程图;

图5是根据本申请第四实施例中的用于nfc卡模拟模式的选卡方法的流程图;

图6是根据本申请第五实施例中的终端的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本申请的第一实施例涉及一种用于nfc卡模拟模式的选卡方法,应用于非接触式近距离通信芯片,该芯片比如可以为nfc芯片。在具体实现中,nfc芯片可以设置在终端内,终端可以为智能手机、智能手环、智能手表等电子设备。本申请实施例的应用场景可以为:用户使用终端模拟智能卡的刷卡业务,该刷卡业务包括但不限于:刷银行卡、刷公交卡、刷门禁卡。下面对本实施方式的用于nfc卡模拟模式的选卡方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

在介绍本发明实施例之前,对于手机智能终端模拟卡进行简单介绍:

传统的各种智能卡,比如公交卡、银行卡、医保卡等,因为卡内含有芯片而能被各种读卡器读取数据进行刷卡,而常见的用于智能卡的芯片有两大类,一类是接触式刷卡,比如常见的插卡pos机,另一类是非接触式刷卡,其内含有类似nfc一类的非接触式数据传输控制芯片(含配套天线),比如常见的靠近读卡机刷卡的公交卡。将这些常见的实体卡片功能,通过手机终端来模拟,就称为手机模拟卡,这时候并没有实实在在的卡片存在,只是通过手机终端内添加卡片的相关信息或程序以“模拟”一张智能卡,这样同一个手机终端可以通过nfc芯片和安全元件的配合实现多种卡、多张卡的模拟,相当于在手机上安装了多张智能卡,可以在不同场合使用同一个手机终端你实现不同的刷卡认证、刷卡消费等行为。另外,为简化起见,本文中用nfc芯片表示能实现nfc通信的完整芯片模块,具体的一种实现方式可以包括nfc控制芯片和nfc天线的组合。

本实施例的用于nfc卡模拟模式的选卡方法的流程图可以如图1所示,包括:

步骤101:在检测到终端进入读卡器的射频范围后,获取对终端内的各个候选智能卡进行分组得到的若干候选智能卡组。

其中,读卡器和终端均具有nfc功能,读卡器可以发出nfc射频场,终端在进入读卡器的射频范围后可以感应到读卡器所发射出的射频场。也就是说,如果终端感应到读卡器所发射出的射频场,则可以确定终端进入该读卡器的射频范围。

在一个例子中,终端为手机,用户乘坐公交车,拿起手机靠近配置在公交车上的读卡器,手机可以检测到该读卡器的nfc射频场,从而确定手机进入读卡器的射频范围。在具体实现中,可以是手机中的nfc芯片检测到该读卡器的nfc射频场,从而确定手机进入读卡器的射频范围。

在具体实现中,用户可以根据实际需要预先在终端中安装可能会使用到的智能卡,该智能卡可以理解为虚拟的电子卡,比如,公交卡、门禁卡、银行卡等。不同的智能卡可以对应有不同的应用,智能卡对应的应用,可以理解为用于实现近距离通信的应用程序,其具备用于模拟非接触ic卡的仿真功能,即具备模拟智能卡的功能。根据应用场景的不同,智能卡对应的应用可以分为不同类型,比如公交卡、门禁卡、银行卡分别对应有公交卡应用、门禁卡应用、银行卡应用。终端中安装的智能卡也可以理解为终端中安装的智能卡对应的应用。

在实际应用中,智能卡实际可以被安装在终端中的安全单元(secureelement,se)中;其中,se可以为智能卡的运行提供安全的执行环境(如认证、授权等),为其敏感数据提供安全的存储环境。se中可以通过存储分区等手段同时安装多个智能卡,se可以是与nfc芯片一起封装的se。当然,se可以以不同的形式存在,例如,以用户标识模块(subscriberidentificationmodule,sim)卡形式存在的se,即sim卡上设置有se、与nfc芯片一起封装的se、集成在终端的印刷电路板(printedcircuitboard,pcb)上的se、集成在安全数字(securedigital,sd)存储卡中的se,即sd存储卡上设置有se。在本实施例中,se还可以以其他形式存在于终端,本实施例对此不做具体限定。需要说明的是,se以不同形式存在于终端,即se可能设置在终端中的不同位置,不同位置的se可以具有相似的功能。

在一个例子中,各个候选智能卡可以为终端内的所有智能卡,即各个候选智能卡包括终端内的所有se上安装的智能卡。

在另一个例子中,各个候选智能卡可以为用户在终端内的所有智能卡中选择的部分智能卡。比如,用户可以根据实际需要在终端内的所有智能卡中选择出使用频率较高的部分智能卡作为各个候选智能卡。

在一个例子中,nfc芯片获取的对终端内的各个候选智能卡进行分组得到的若干候选智能卡组的实现方式可以为:nfc芯片直接对终端内的各个候选智能卡进行分组得到的若干候选智能卡组。可选的,终端内的主控芯片可以对终端内的各个候选智能卡进行分组得到的若干候选智能卡组,然后主控芯片将分组的结果发送给nfc芯片,使得nfc芯片可以获取分组后的若干候选智能卡组。也就是说,nfc芯片只需接收主控芯片发送的分组结果,无需为了实现分组的功能在nfc芯片中嵌入更多的代码,有利于节省nfc芯片的存储空间,降低nfc芯片的生产成本。

在具体实现中,可以获取各个候选智能卡的信息,并根据各个候选智能卡的信息对终端内的各个候选智能卡进行分组,得到的若干候选智能卡组。

下面对本实施例中各个候选智能卡的信息的获取方式进行举例说明:

在一个例子中,nfc芯片可以向终端内的所有se发送符合全球平台国际标准组织(globalplatform,gp)规范或符合国际标准化组织(internationalstandardorganization,iso)7816规范的命令,请求获取所有se上安装的智能卡的信息。se在收到nfc芯片发送的上述命令后,向nfc芯片返回se上安装的智能卡的信息。nfc芯片根据se返回的信息,获取各个候选智能卡的信息。

在另一个例子中,终端内的主控芯片可以向终端内的所有se发送符合gp规范或iso7816规范的命令,请求获取所有se上安装的智能卡的信息,即se在收到主控芯片发送的上述命令后,向主控芯片返回se上安装的智能卡的信息。主控芯片根据se返回的信息获取各个候选智能卡的信息,然后将各个候选智能卡的信息,发送至nfc芯片。也就是说,nfc芯片只需接收主控芯片发送的各个候选智能卡的信息,无需为了实现更多的功能在nfc芯片中嵌入更多的代码,有利于节省nfc芯片的存储空间,降低nfc芯片的生产成本。

在具体实现中,智能卡的信息可以包括但不限于:智能卡对应的应用标识符(applicationidentifier,aid)、智能卡的非接触参数、智能卡的生命周期、智能卡的地理位置需求、智能卡的nfc技术类型、智能卡所属的安全单元的信息、智能卡的卡类型。地理位置需求也可以称为:全球定位系统(globalpositioningsystem,gps)需求。其中,nfc技术类型可以为:nfc-a技术、nfc-b技术、nfc-f技术等,智能卡的卡类型可以为公交类、门禁类、银行卡类等。

其中,上述的非接触参数可以理解为:nfc芯片模拟智能卡时,与读卡器之间建立空中接口连接所需使用的通信参数,也就是说,智能卡的非接触参数为用于与读卡器建立通信连接的参数。在具体实现中,非接触参数可以包括但不限于:用户身份证明(useridentification,uid)、请求应答(answertorequest,atq)、选择确认指令(selectacknowledge,sak)以及选择应答(answertoselect,ats)等。

在一个例子中,可以根据终端内的各个候选智能卡的卡类型,对各个候选智能卡进行分组,比如将具有相同卡类型的候选智能卡分到同一个候选智能卡组。或者,还可以根据终端内的各个候选智能卡所支持的nfc技术类型,对各个候选智能卡进行分组,比如将支持相同nfc技术类型的候选智能卡分到同一个候选智能卡组。

在另一个例子中,可以根据终端内的各个候选智能卡的用于建立通信连接的参数,对各个候选智能卡进行分组,得到若干候选智能卡组;其中,同一候选智能卡组内的候选智能卡的用于建立通信连接的参数不存在冲突,用于建立通信的参数即为非接触参数。也就是说,可以根据各候选智能卡的非接触参数是否存在冲突,将非接触参数不存在冲突的候选智能卡分为一组,得到若干候选智能卡组,方便了后续直接对同一个组内的各候选智能卡的非接触参数进行不存在冲突的合并。

在具体实现中,可以对各候选智能卡的非接触参数进行两两比较,确定任意两个候选智能卡的非接触参数是否冲突,得到每张候选智能卡的冲突列表,根据每张候选智能卡的冲突列表对各候选智能卡进行分组,得到若干候选智能卡组。比如,候选智能卡1的冲突列表有候选智能卡2、3、4,代表候选智能卡2、3、4的非接触参数和候选智能卡1的非接触参数冲突,不能分为一组。下面对如何确定任意两个候选智能卡的非接触参数是否冲突的方式进行说明:

在一个例子中,nfc芯片可以使用gp规范规定的非接触参数冲突检测算法,检测任意两个候选智能卡的非接触参数是否存在冲突。

在另一个例子中,nfc芯片可以先将候选智能卡1激活,再尝试将候选智能卡2激活,如果候选智能卡2被激活成功,说明候选智能卡2和候选智能卡1的非接触参数之间不存在冲突;如果候选智能卡2被激活失败,说明候选智能卡2和候选智能卡1的非接触参数之间存在冲突。

在一个例子中,对各个候选智能卡进行分组的方式可以为:根据各候选智能卡的优先级从高到底的顺序,依次遍历各候选智能卡,如果遍历到的候选智能卡的非接触参数和候选智能卡组内的每一个智能卡的非接触参数都不冲突,则将遍历到的候选智能卡放置在候选智能卡组内。其中,各候选智能卡的优先级的确定方式可以参考第一实施例中提到的优先级的确定方式,未避免重复,在此不再赘述。

步骤102:对若干候选智能卡组进行是否满足过滤条件的判断,获取符合过滤条件的各个待选智能卡组。

具体的说,在检测到终端进入读卡器的射频范围后,nfc芯片可以根据每个候选智能卡组中的候选智能卡的用于进行过滤的参数和读卡器的信息,对若干候选智能卡组分别进行是否满足过滤条件的判断,获取符合过滤条件的各个待选智能卡组。也可以理解为,将若干候选智能卡组中满足过滤条件的候选智能卡组称为待选智能卡组。其中,第二过滤条件可以根据实际需要进行设置。

在一个例子中,上述的候选智能卡的用于进行过滤的参数包括:候选智能卡的近场通讯nfc技术类型、候选智能卡的卡类型,读卡器的信息包括:读卡器支持的nfc技术类型、读卡器支持的卡类型。所述过滤条件可以包括:候选智能卡组中至少存在一个候选智能卡的nfc技术类型属于读卡器支持的nfc技术类型,和/或,候选智能卡组中至少存在一个候选智能卡的卡类型属于读卡器支持的卡类型。也就是说,过滤掉不包含读卡器支持的nfc技术类型的候选智能卡的候选智能卡组,和/或,不包含读卡器支持的卡类型的候选智能卡的候选智能卡组,有利于合理的对候选智能卡组进行过滤,提高了过滤后得到的候选智能卡组与读卡器能够成功建立通信连接的可能性。

在具体实现中,一个候选智能卡组中的所有候选智能卡的nfc技术类型可以组成nfc技术列表,该候选智能卡组中的所有候选智能卡的卡类型可以组成卡类型列表。候选智能卡组的nfc技术列表由候选智能卡组内所有候选智能卡共同决定,比如候选智能卡组内有一个nfc-a技术的候选智能卡,则该候选智能卡组就具有nfc-a技术。nfc芯片可以在检测到来自于读卡器的rf帧之后,根据rf帧确定读卡器的nfc技术类型和卡类型,然后过滤掉不包含读卡器支持的nfc技术类型,和/或,不包含读卡器支持的卡类型的候选智能卡组,得到过滤后的符合过滤条件的各个待选智能卡组。

步骤103:确定各个待选智能卡组的优先级。

在一个例子中,可以确定各个待选智能卡组中各待选智能卡的优先级,然后,根据各个待选智能卡组中各待选智能卡的优先级,确定各个待选智能卡组的优先级。比如,可以将各个待选智能卡组中具有最高优先级的待选智能卡的优先级,作为各个待选智能卡组的优先级。也就是说,一个待选智能卡组的优先级可以根据该待选智能卡组内的待选智能卡的优先级确定。然而,本实施方式并不以此为限。

在一个例子中,各个候选智能卡的信息还可以包括针对各候选智能卡预设的优先级,从而nfc芯片可以确定各个待选智能卡组中的各个待选智能卡的优先级。其中,针对各候选智能卡预设的优先级可以由用户根据实际需要进行设置,比如,用户可以对经常使用的候选智能卡设置较高的优先级,对使用频率较低的候选智能卡设置较低的优先级。

在另一个例子中,确定各个待选智能卡组中各待选智能卡的优先级的方式为:根据各个待选智能卡组中各待选智能卡的信息,确定各待选智能卡对应的排序权重;根据各待选智能卡对应的排序权重,确定各待选智能卡的优先级。

其中,如果待选智能卡对应的排序权重为1个,则可以将该待选智能卡对应的排序权重作为优先级。如果待选智能卡对应的排序权重为多个,则可以结合该多个排序权重确定待选智能卡的优先级,比如,将该待选智能卡的多个排序权重的和作为该待选智能卡的优先级,或者对该待选智能卡的多个排序权重求平均值,将平均值作为该待选智能卡的优先级,然并不以此为限。下面主要对根据各待选智能卡的信息,确定各个待选智能卡对应的排序权重的实现方式进行说明:

在一个例子中,各待选智能卡的信息可以包括针对各待选智能卡预设的排序权重,从而nfc芯片可以根据各待选智能卡的信息,确定各待选智能卡对应的排序权重。其中,针对各待选智能卡预设的排序权重可以由用户根据实际需要进行设置。

在另一个例子中,可以根据各待选智能卡的信息,确定各待选智能卡对应的权重因子,根据各待选智能卡对应的权重因子,确定各待选智能卡对应的排序权重。其中,待选智能卡的信息包括待选智能卡对应的应用时,权重因子包括:基于待选智能卡对应的应用是否为终端运行的前台应用确定的第一权重因子,和/或,基于待选智能卡对应的应用是否为终端默认的付款应用确定的第二权重因子。待选智能卡的信息包括待选智能卡的地理位置需求时,权重因子包括:基于终端的地理位置是否满足待选智能卡的地理位置需求确定的第三权重因子。待选智能卡的信息包括待选智能卡被激活的历史次数时,权重因子包括:基于待选智能卡被激活的历史次数确定的第四权重因子。在具体实现中,权重因子可以包括但不限于上述四种权重因子中的一个或多个。最终可以将待选智能卡对应的所有权重因子相加,得到待选智能卡对应的排序权重,或者对待选智能卡对应的所有权重因子求平均值,得到待选智能卡对应的排序权重。通过基于待选智能卡的信息(比如:待选智能卡对应的应用、待选智能卡的地理位置需求、待选智能卡被激活的历史次数等),确定的权重因子,有利于合理的确定待选智能卡对应的排序权重,从而有利于根据排序权重合理的确定待选智能卡的优先级。

在一个例子中,在权重因子包括上述第三权重因子的情况下,若终端的地理位置同时满足多个待选智能卡的地理位置需求,则多个待选智能卡中,地理位置需求范围越小的待选智能卡对应的第三权重因子越大。比如,终端的地理位置为成都市公司a大楼内,多个待选智能卡中包括:成都市的交通智能卡(简称智能卡1)、成都市公司a大楼的门禁智能卡(简称智能卡2)。由此可见,终端的地理位置同时满足智能卡1和智能卡2的地理位置需求,由于智能卡2相对于智能卡1的地理位置需求范围更小,因此智能卡2相比于智能卡1具有更高的第三权重因子,也就是说,地理位置需求范围更小的候选智能卡会产生更大的排序权重,有利于更加合理的确定第三权重因子。

为便于理解,下面以一个具体示例对确定权重因子的实现过程,以及根据权重因子确定排序权重的实现过程进行说明:

第一权重因子的确定方式:如果待选智能卡对应的应用为终端正在使用的前台应用中,则待选智能卡的第一权重因子为maxintvalue/10;如果待选智能卡对应的应用不是终端正在使用的前台应用,则待选智能卡的第一权重因子为0。其中,maxintvalue可以为根据实际需要设置的数值。

第二权重因子的确定方式:如果待选智能卡对应的应用为终端默认的付款应用,则待选智能卡的第二权重因子为maxintvalue/100;如果待选智能卡对应的应用不是终端默认的付款应用,则待选智能卡的第二权重因子为0。其中,终端默认的付款应用可以为用户根据实际需要选择的应用。

第三权重因子的确定方式:如果终端当前的地理位置即gps位置信息,位于待选智能卡的gps需求范围内,则该待选智能卡的第三权重因子为maxintvalue/100;如果终端当前的gps位置信息,不位于待选智能卡的gps需求范围内,则该待选智能卡的第三权重因子为0。在具体实现中,如果终端当前的gps位置信息,位于多个待选智能卡的gps需求范围内,还可以通过如下方式确定多个待选智能卡分别对应的第三权重因子:

第三权重因子为maxintvalue/100/gps_rank;其中,gps_rank用于终端当前的gps位置信息同时满足多个待选智能卡的gps需求的场景,比如终端当前的gps位置信息为成都市公司a大楼内,同时满足两个待选智能卡的gps需求,这两个待选智能卡可以为成都市的交通智能卡(简称智能卡1)、成都市公司a大楼的门禁智能卡(简称智能卡2)。智能卡2的gps需求范围更小,智能卡1的gps需求范围更大,那么这两个智能卡的gps_rank可以分别为,智能卡2的gps_rank=1,智能卡1的gps_rank=2。也就是说,更小的gps需求会产生更大的第三权重因子。

第四权重因子的确定方式:获取待选智能卡历史上被激活的次数比如为x次,则该待选智能卡的第四权重因子可以为x。

在具体实现中,在得到上述四种权重因子后,可以将待选智能卡的第一权重因子、第二权重因子、第三权重因子、第四权重因子相加的和作为该待选智能卡的排序权重。需要说明的是,上述示例中只是以权重因子同时包括上述四种权重因子为例,在具体实现中并不以此为限。可以理解的是,根据每个待选智能卡的权重因子,可以确定每个待选智能卡的排序权重,从而进一步根据排序权重确定每个待选智能卡的优先级,且排序权重越大,优先级越高。

步骤104:根据各个待选智能卡组的优先级从高到低的顺序,依次遍历各个待选智能卡组,并根据当前遍历到的待选智能卡组的信息,尝试与读卡器建立通信连接。

在一个例子中,nfc芯片可以根据各个待选智能卡组的优先级从高到低的顺序,依次遍历各个待选智能卡组,并根据当前遍历到的待选智能卡组中的各待选智能卡的非接触参数,分别尝试与读卡器建立通信连接。

在另一个例子中,各个待选智能卡组为根据各候选智能卡的非接触参数是否存在冲突得到的分组。当前遍历到的待选智能卡组的信息包括:对待选智能卡组中的各待选智能卡的用于建立通信连接的参数进行合并后得到的合并参数,该合并参数可以理解为对待选智能卡组中的各待选智能卡的非接触参数进行合并后得到参数。也就是说,将分在同一个待选智能卡组中的各待选智能卡的非接触参数进行合并,得到该待选智能卡组的合并的非接触参数。

在一个例子中,可以使用gp规范规定的非接触参数合并算法,对同一个待选智能卡组中的待选智能卡的非接触参数进行合并,得到该待选智能卡组对应的合并的非接触参数。比如,一个待选智能卡组中的3个待选智能卡的非接触参数分别为:参数1、参数2、参数3,则将参数1、参数2、参数3合并后得到的该待选智能卡组对应的合并的非接触参数可以为新的参数4。

也就是说,nfc芯片可以根据各个待选智能卡组的优先级从高到低的顺序,依次遍历各个待选智能卡组,并根据当前遍历到的待选智能卡组的合并参数,尝试与读卡器建立通信连接。可以理解的是,本实施例中根据当前遍历到的待选智能卡组的合并参数,尝试与读卡器建立通信连接,在一定程度上有利于减少尝试建立通信连接的次数,无需基于每个待选智能卡的非接触参数均进行一次尝试建立通信连接的过程,有利于减少尝试建立通信连接的次数,提高与读卡器成功建立通信连接的速度。比如,一个待选智能卡组内的3个待选智能卡的非接触参数分别为:参数1、参数2、参数3,则将参数1、参数2、参数3合并后得到新的参数4,本实施例中无需基于3个待选智能卡的非接触参数即参数1、参数2、参数3均进行一次尝试建立通信连接的过程,而是基于合并后得到的参数4尝试与读卡器建立通信连接。

其中,根据当前遍历到的待选智能卡组的非接触参数(即合并后的非接触参数),尝试与读卡器建立通信连接,可以理解为:nfc芯片使用遍历到的待选智能卡组的非接触参数和读卡器进行符合nfc论坛标准协议的射频(radiofrequency,rf)指令交换,当前遍历到的待选智能卡组的非接触参数会填充在rf指令中和读卡器进行交互,相互认证并尝试建立通信。如果rf指令交换成功,则可以认为nfc芯片可以通过当前遍历到的待选智能卡组的非接触参数成功和读卡器建立通信连接,即nfc芯片可以使用该遍历到的待选智能卡组的非接触参数和读卡器进行通信。

在具体实现中,上述的rf指令可以是应用协议数据单元(applicationprotocoldataunit,apdu)帧格式、单字节短帧格式、长帧格式等帧格式的指令。又如,rf指令可以是14443typea,14443typeb,iso18092,iso15693等类型的指令。rf指令可以具体为:nfc论坛标准协议规定的all_reqcommand、sens_reqcommand、sens_resresponse、sdd_reqcommand、sel_reqcommand、slp_reqcommand等。

步骤105:若根据当前遍历到的待选智能卡组的信息,与读卡器成功建立通信连接,根据当前遍历到的待选智能卡组确定目标智能卡,并通过目标智能卡与读卡器进行刷卡操作。

在一个例子中,若根据当前遍历到的待选智能卡组的信息,与读卡器成功建立通信连接,nfc芯片可以激活当前遍历到的待选智能卡组中的所有待选智能卡;然后,nfc芯片可以基于与读卡器成功建立的通信连接,接收到来自读卡器的选卡指令,从而在被激活的待选智能卡中选择与选卡指令对应的待选智能卡作为目标智能卡,通过目标智能卡进行与读卡器的刷卡操作。其中,选卡指令可以携带aid,nfc芯片可以根据选卡指令中携带的aid确定与选卡指令对应的待选智能卡。

在另一个例子中,若遍历完所有待选智能卡组后,仍未与读卡器成功建立通信连接,则nfc芯片可以发出选卡失败的通知信息;和/或,弹出预设的用于供用户选择智能卡的选卡界面。比如,nfc芯片可以控制终端的屏幕,使得屏幕上显示选卡失败的通知信息,还可以控制终端开始震动以提醒用户。nfc芯片还可以控制终端的屏幕,使得屏幕上弹出预设用于供用户选择智能卡的选卡界面,方便用户进行选择。也就是说,如果自动选卡失败,可以发出通知信息以通知用户,方便用户得知当前选卡失败的结果,和/或,弹出预设的用于供用户选择智能卡的选卡界面,有利于提升用户的使用体验。

在一个例子中,遍历完所有待选智能卡组后,仍未与读卡器成功建立通信连接,可能的原因为:终端内的各个候选智能卡为终端内的所有智能卡中的一部分,比如用户选择的一部分智能卡为候选智能卡,参与本实施方式中的选卡方法,而终端当前进入的读卡器的射频范围后,能够与该读卡器成功建立通信连接的是除候选智能卡之外的其他智能卡的信息。比如,终端内安装有成都市和西安市的公交卡,用户的常住地是成都市,用户将成都市公交卡添加在候选智能卡列表中。当用户前往西安市出差需要乘坐公交时,由于西安市的公交卡不在候选智能卡列表中,因此,nfc芯片遍历完各个待选智能卡组后,也不会与读卡器成功建立通信连接。此时,nfc芯片可以控制终端弹出预设的用于供用户选择智能卡的选卡界面,使得用户可以选择西安市公交卡,从而完成刷卡操作。

在另一个例子中,遍历完各个待选智能卡组后,仍未与读卡器成功建立通信连接,可能的原因为:终端内未安装能够在读卡器上完成刷卡操作的智能卡,此时nfc芯片可以控制终端发出选卡失败的通知信息,以提醒用户安装能够在该读卡器上刷卡的智能卡。

需要说明的是,本实施方式中的上述各示例均为为方便理解进行的举例说明,并不对本申请的技术方案构成限定。

本实施方式中,在检测到终端进入读卡器的射频范围后,即用户接近读卡器后,无需点亮终端的屏幕,进入选卡程序,人工选择智能卡进行刷卡,有利于减少用户操作,提高刷卡的便捷性。而且,对若干候选智能卡组进行是否满足过滤条件的判断,即以组为单位进行过滤,有利于提高过滤的速度,得到符合过滤条件的各个待选智能卡组,有利于缩小遍历范围,提高遍历速度,从而提高选卡速度。通过各个待选智能卡组的优先级从高到低的顺序依次遍历各个待选智能卡组,有利于以合理的顺序依次根据各个待选智能卡组的信息,尝试与读卡器建立通信连接,有利于减小尝试的次数,快速的成功与读卡器建立通信连接,从而进一步提高选卡的速度。

本申请的第二实施方式涉及一种用于nfc卡模拟模式的选卡方法。下面对本实施方式的用于nfc卡模拟模式的选卡方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

本实施例的用于nfc卡模拟模式的选卡方法的流程图可以如图2所示,包括:

步骤201:获取终端内满足预设的筛选条件的各个候选智能卡。

具体的说,可以对终端内的各智能卡进行是否满足预设的筛选条件的判断,得到满足预设的筛选条件的各个候选智能卡。其中,筛选条件可以根据实际需要进行设置。即本实施例中的各候选智能卡是指对终端内所有智能卡进行是否满足预设的筛选条件的判断后,淘汰了不满足筛选条件的智能卡,保留了满足筛选条件的智能卡,满足筛选条件的智能卡即为候选智能卡。

在一个例子中,nfc芯片可以在确定终端的位置与读卡器的位置之间的距离小于预设距离时,开始获取终端内满足预设的筛选条件的各个候选智能卡。其中,预设距离可以根据实际需要进行设置,用于表征终端与读卡器的位置接近。也就是说,在终端与读卡器的位置接近时,获取终端内满足预设的筛选条件的各个候选智能卡。考虑到,终端与读卡器的位置接近时,用户前往设置有读卡器的位置进行刷卡的可能性较大,因此,在终端与读卡器的位置接近时,获取终端内满足预设的筛选条件的各个候选智能卡更加合理,更加符合用户的刷卡习惯,为用户刷卡提供方便。

在一个例子中,终端的主控芯片可以实时或周期性的获取所处的地理位置,并判断终端的位置与读卡器的位置之间的距离小于预设距离,即判断在终端所处的地理位置附近是否设置有读卡器,若判定终端所处的地理位置附近设置有读卡器,说明用户前往设置有读卡器的位置进行刷卡的可能性较大,此时主控芯片可以通知nfc芯片,使得nfc芯片开始对终端内所有智能卡进行是否满足预设的筛选条件的判断,得到满足预设的筛选条件的各个候选智能卡。或者,主控芯片可以对终端内所有智能卡进行是否满足预设的筛选条件的判断,得到满足预设的筛选条件的各个候选智能卡,然后主控芯片将满足预设的筛选条件的各个候选智能卡的信息发送给nfc芯片。也就是说,nfc芯片只需接收主控芯片发送的满足预设的筛选条件的各个候选智能卡的信息,无需为了实现更多的功能在nfc芯片中嵌入更多的代码,有利于节省nfc芯片的存储空间,降低nfc芯片的生产成本。

在一个例子中,判断终端的位置与读卡器的位置之间的距离是否小于预设距离方式可以为:在设置有读卡器的位置可以预先设置标识,使得终端可以根据当前所处的地理位置确定预设地理范围内是否存在预设有标识的位置,从而判断在终端所处的地理位置附近是否设置有读卡器,即终端的位置与读卡器的位置之间的距离是否小于预设距离。其中,预设地理范围可以为以终端所处的地理位置为圆心,以r为预设半径的圆形区域范围,预设半径的大小可以根据实际需要进行设置。需要说明的是,本实施例中的预设地理范围只是以上述的圆形区域为例,在具体实现中并不以此为限。

在另一个例子中,当检测终端上用于表征开启选卡功能的按键被按压时,可以开始对终端内的各智能卡进行是否满足预设的筛选条件的判断,得到满足预设的筛选条件的各个候选智能卡。其中,用于表征开启选卡功能的按键可以为预先设置的虚拟按键。考虑到,当检测终端上用于表征开启选卡功能的按键被按压时,表明用户希望开始自动选卡,此时开始获取终端内满足预设的筛选条件的各个候选智能卡,更加容易满足用户的实际需求,提高用户的使用体验。

在一个例子中,筛选条件包括:终端的地理位置满足候选智能卡的地理位置需求,和/或,候选智能卡所属的安全单元允许被激活。也就是说,根据终端当前的地理位置淘汰掉地理位置需求不能被满足的智能卡,和/或,淘汰掉所属的安全单元不允许被激活的智能卡,有利于合理的对终端中的所有智能卡进行筛选。为便于对上述筛选条件的理解,下面进行举例说明:

候选智能卡以成都市的交通智能卡为例,则该交通智能卡的gps需求即为位于成都市的地理范围内。如果终端当前的地理位置处于成都市地理范围内,则可以确定终端的地理位置满足该交通智能卡的地理位置需求。如果终端当前的地理位置处于西安市地理范围内,则可以确定终端的地理位置不满足该交通智能卡的地理位置需求,从而直接将成都交通智能卡滤除掉不作为候选智能卡。

候选智能卡所属的安全单元是否允许被激活,可以根据实际需要进行设置。比如,终端在出厂时已经设定好终端中的哪些安全单元允许被激活,哪些安全单元不允许被激活。或者,终端在出厂时预留了可供用户设置的接口,用户可以根据该接口自行设置哪些安全单元允许被激活,哪些安全单元不允许被激活。在具体实现中,还可以设置安全单元允许被激活的时间和地点,即终端中的安全单元在特定的时间和地点才允许被激活。

步骤202:在检测到终端进入读卡器的射频范围后,获取对终端内的各个候选智能卡进行分组得到的若干候选智能卡组。

步骤203:对若干候选智能卡组进行是否满足过滤条件的判断,获取符合过滤条件的各个待选智能卡组。

步骤204:确定各个待选智能卡组的优先级。

步骤205:根据各个待选智能卡组的优先级从高到低的顺序,依次遍历各个待选智能卡组,并根据当前遍历到的待选智能卡组的信息,尝试与读卡器建立通信连接。

步骤206:若根据当前遍历到的待选智能卡组的信息,与读卡器成功建立通信连接,根据当前遍历到的待选智能卡组确定目标智能卡,并通过目标智能卡与读卡器进行刷卡操作。

其中,步骤202至步骤206与第一实施方式中步骤101至步骤105大致相同,为避免重复,在此不再赘述。

可以理解的是,本实施例中,在终端进入读卡器的射频范围之前,先在无需结合读卡器的信息的情况下,对终端内的各智能卡进行筛选,得到满足筛选条件的各个候选智能卡。在终端进入读卡器的射频范围之后,可以根据终端内的各候选智能卡的信息和读卡器的信息,得到过滤后的符合过滤条件的各个待选智能卡组。

在一个例子中,本实施例中的用于nfc卡模拟模式的选卡方法可以基于如图3所示的模块图实现,包括:

智能卡信息获取模块301,用于获取终端内各智能卡的信息。

非接触参数冲突检测模块302,用于对各智能卡的非接触参数是否存在冲突进行检测。其中,非接触参数也可以称为:非接参数、rf参数、用于建立通信连接的参数。

智能卡筛选模块303,用于对终端内的各智能卡进行筛选,得到满足筛选条件的各个候选智能卡。

智能卡优先级确定模块304,用于确定各个候选智能卡的优先级,可选的还可以对各个候选智能卡按照优先级进行排序。

智能卡分组和参数合并模块305,用于将所有的候选智能卡分为若干个组,确保每个组内的候选智能卡的非接触参数之间是没有冲突的,并且将组内的所有候选智能卡的非接触参数合并成一组新的非接触参数。

智能卡组信息下发模块306,用于将分组后的候选智能卡组的信息下发到nfc芯片,具体的可以下发至nfc芯片中的nfc控制器。其中,候选智能卡组的信息包括但不限于以下信息:

候选智能卡组的标识及优先级;其中,候选智能卡组的优先级可以由候选智能卡组内最高优先级的候选智能卡决定。

候选智能卡组的nfc技术列表,候选智能卡组的nfc技术列表可以由候选智能卡组内所有候选智能卡共同决定,比如候选智能卡组内有一个具有nfc-a技术的候选智能卡,则候选智能卡组就拥有nfc-a技术,即候选智能卡组的nfc技术列表中包括nfc-a技术。

合并后的nfc-a技术的非接触参数、合并后的nfc-b技术的非接触参数、合并后的nfc-f技术的非接触参数。

智能卡组过滤模块307,用于对若干候选智能卡组进行过滤,得到满足过滤条件的各个待选智能卡组。

非接触参数选择模块308,用于从高优先级到低优先级遍历上述满足过滤条件的各个待选智能卡组,使用当前遍历到的待选智能卡组的合并的非接触参数和读卡器进行符合nfc论坛标准的协议的rf指令交换,如果rf指令交换成功,则选择当前遍历到的待选智能卡组为目标智能卡组,该目标智能卡组对应的非接触参数即为非接触参数选择模块308的选择结果。

智能卡激活模块309,用于激活目标智能卡组内的所有智能卡。

智能路由模块310,用于在nfc芯片和读卡器之间建立起通信连接后,并且目标智能卡组内的智能卡全部被激活后,nfc芯片可以将来自于读卡器的数据路由给正确的安全芯片,具体的,nfc芯片可以接收读卡器的选卡指令,从而根据选卡指令在被激活的智能卡中选择目标智能卡,该目标智能卡所安装的安全芯片即为上述正确的安全芯片。

智能选卡失败处理模块311,用于在确定遍历所有的待选智能卡组后,仍然不能和读卡器正确交换rf指令,则通知终端智能选卡失败。可选的,终端可以通知用户智能选卡失败,并弹出预设的选卡界面让用户手动选择一张智能卡。

在一个例子中,上述的模块301至模块305均设置在独立于nfc芯片的终端内的主控芯片中,则该主控芯片还会设置智能卡组信息下发模块306,从而通过该智能卡组信息下发模块306将候选智能卡组的信息发送至nfc芯片中,比如智能卡组信息下发模块306将候选智能卡组的信息发送至nfc芯片中的智能卡组过滤模块307。也就是说,上述的模块301至模块306均设置在主控芯片中,上述模块307至模块311均设置在nfc芯片中,主控芯片和nfc芯片连接。

在另一个例子中,上述的模块301至模块305均设置在nfc芯片中,则nfc芯片中不需要上述的智能卡组信息下发模块306。也就是说,nfc芯片中可以设置有模块301至模块305以及模块307至模块311。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施方式中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本实施方式中,终端在还未进入读卡器的射频范围时,先合理的筛选出满足筛选条件的各个候选智能卡,有利于将候选智能卡的数量控制在合理的范围内,在不影响与读卡器建立通信连接的成功率的同时提高与读卡器成功建立通信连接的速度。另外,终端进入射频范围后过,再过滤掉部分候选智能卡组,得到符合过滤条件的各个待选智能卡组,有利于进一步缩小遍历范围,提高遍历速度,从而提高选卡速度。

本申请的第三实施方式涉及一种用于nfc卡模拟模式的选卡方法。下面对本实施方式的用于nfc卡模拟模式的选卡方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

本实施例的用于nfc卡模拟模式的选卡方法的流程图可以如图4所示,包括:

步骤401:在检测到终端进入读卡器的射频范围后,对终端内的各个候选智能卡进行是否满足过滤条件的判断,获取符合过滤条件的各个待选智能卡。

其中,读卡器和终端均具有nfc功能,读卡器可以发出nfc射频场,终端在进入读卡器的射频范围后可以感应到读卡器所发射出的射频场。也就是说,如果终端感应到读卡器所发射出的射频场,则可以确定终端进入该读卡器的射频范围。

在一个例子中,终端为手机,用户乘坐公交车,拿起手机靠近配置在公交车上的读卡器,手机可以检测到该读卡器的nfc射频场,从而确定手机进入读卡器的射频范围。在具体实现中,可以是手机中的nfc芯片检测到该读卡器的nfc射频场,从而确定手机进入读卡器的射频范围。

在具体实现中,用户可以根据实际需要预先在终端中安装可能会使用到的智能卡,该智能卡可以理解为虚拟的电子卡,比如,公交卡、门禁卡、银行卡等。不同的智能卡可以对应有不同的应用,智能卡对应的应用,可以理解为用于实现近距离通信的应用程序,其具备用于模拟非接触ic卡的仿真功能,即具备模拟智能卡的功能。根据应用场景的不同,智能卡对应的应用可以分为不同类型,比如公交卡、门禁卡、银行卡分别对应有公交卡应用、门禁卡应用、银行卡应用。终端中安装的智能卡也可以理解为终端中安装的智能卡对应的应用。

在实际应用中,智能卡实际可以被安装在终端中的安全单元(secureelement,se)中;其中,se可以为智能卡的运行提供安全的执行环境(如认证、授权等),为其敏感数据提供安全的存储环境。se中可以通过存储分区等手段同时安装多个智能卡,se可以是与nfc芯片一起封装的se。当然,se可以以不同的形式存在,例如,以用户标识模块(subscriberidentificationmodule,sim)卡形式存在的se,即sim卡上设置有se、与nfc芯片一起封装的se、集成在终端的印刷电路板(printedcircuitboard,pcb)上的se、集成在安全数字(securedigital,sd)存储卡中的se,即sd存储卡上设置有se。在本实施例中,se还可以以其他形式存在于终端,本实施例对此不做具体限定。需要说明的是,se以不同形式存在于终端,即se可能设置在终端中的不同位置,不同位置的se可以具有相似的功能。

在一个例子中,各个候选智能卡可以为终端内的所有智能卡,即各个候选智能卡包括终端内的所有se上安装的智能卡。

在另一个例子中,各个候选智能卡可以为用户在终端内的所有智能卡中选择的部分智能卡。比如,用户可以根据实际需要在终端内的所有智能卡中选择出使用频率较高的部分智能卡作为各个候选智能卡。

在一个例子中,nfc芯片可以根据终端内的各个候选智能卡的信息和读卡器的信息,对终端内的各个候选智能卡分别进行是否满足过滤条件的判断,得到符合过滤条件的各个待选智能卡。其中,候选智能卡的信息和读卡器的信息的获取方式,以及候选智能卡的信息和读卡器的信息中包括的内容可以参考第一实施方式中的相关描述,为避免重复,在此不再赘述。

在一个例子中,过滤条件包括:候选智能卡的nfc技术类型属于读卡器支持的nfc技术类型,和/或,候选智能卡的卡类型属于读卡器支持的卡类型。也就是说,在各个候选智能卡中淘汰掉不属于读卡器支持的nfc技术类型的候选智能卡,和/或,淘汰掉不属于读卡器支持的卡类型的候选智能卡,有利于合理的对终端中的各个候选智能卡进行是否满足过滤条件的判断。

步骤402:确定各个待选智能卡的优先级。

其中,本步骤中确定各个待选智能卡的优先级的方式,可以参考第一实施方式中的各个待选智能卡优先级的确定方式,为避免重复,此处不再赘述。

步骤403:根据各个待选智能卡的优先级从高到低的顺序,依次遍历各个待选智能卡,并根据当前遍历到的待选智能卡的信息,尝试与读卡器建立通信连接。

其中,当前遍历到的待选智能卡的信息为待选智能卡的用于建立通信连接的参数,即待选智能卡的非接触参数。即nfc芯片根据各个待选智能卡的优先级从高到低的顺序遍历各个待选智能卡,根据当前遍历到的待选智能卡的非接触参数,尝试与读卡器建立通信连接,直至遍历到能够与读卡器成功建立通信连接的待选智能卡,停止遍历。也可以理解为,nfc芯片依次模拟各待选智能卡,尝试在模拟各待选智能卡时和读卡器建立通信连接。

在一个例子中,根据当前遍历到的待选智能卡的非接触参数,尝试与读卡器建立通信连接,可以理解为:nfc芯片使用遍历到的待选智能卡的非接触参数和读卡器进行符合nfc论坛标准协议的射频(radiofrequency,rf)指令交换,当前遍历到的待选智能卡的非接触参数会填充在rf指令中和读卡器进行交互,相互认证并尝试建立通信。如果rf指令交换成功,则可以认为nfc芯片可以通过当前遍历到的待选智能卡的非接触参数成功和读卡器建立通信连接,即nfc芯片可以使用该遍历到的待选智能卡的非接触参数和读卡器进行通信。

在具体实现中,上述的rf指令可以是应用协议数据单元(applicationprotocoldataunit,apdu)帧格式、单字节短帧格式、长帧格式等帧格式的指令。又如,rf指令可以是14443typea,14443typeb,iso18092,iso15693等类型的指令。rf指令可以具体为:nfc论坛标准协议规定的all_reqcommand、sens_reqcommand、sens_resresponse、sdd_reqcommand、sel_reqcommand、slp_reqcommand等。

步骤404:若根据当前遍历到的待选智能卡的信息,与读卡器成功建立通信连接,通过当前遍历到的待选智能卡与读卡器进行刷卡操作。

在一个例子中,若根据当前遍历到的待选智能卡的信息,与读卡器成功建立通信连接,将当前遍历到的待选智能卡记为目标智能卡。通过目标智能卡与读卡器进行刷卡操作的方式可以如下:激活目标智能卡,nfc芯片将来自读卡器的数据,发送至安装目标智能卡的se,由se处理该数据,以完成刷卡操作。比如,在终端靠近刷银行卡的读卡器时,读卡器与终端内的nfc芯片通过目标智能卡(比如银行卡)的非接触参数成功建立通信连接后,nfc芯片可以激活该目标智能卡。然后,nfc芯片接收到来自读卡器发送的交易指令后,可以将该交易指令发送至安装目标智能卡的se上,利用se提供的安全的执行环境完成交易,即进行刷银行卡的操作。

在一个例子中,激活目标智能卡的方式可以为:nfc芯片向安装所述目标智能卡的se发送指令,以使得安装所述目标智能卡的se激活目标智能卡。在另一个例子中,激活目标智能卡的方式可以为:nfc芯片将目标智能卡对应的aid发送至终端中的应用处理器(applicationprocessor,ap),由终端中的ap向se发起目标智能卡的激活指令,从而激活目标智能卡。

在一个例子中,若遍历完各个待选智能卡后,仍未与读卡器成功建立通信连接,nfc芯片可以发出选卡失败的通知信息;和/或,弹出预设的用于供用户选择智能卡的选卡界面。其中,若遍历完各个待选智能卡后,仍未与读卡器成功建立通信连接后的处理方式与第一实施方式中若遍历完各个待选智能卡组后,仍未与读卡器成功建立通信连接的处理方式类似,可以参考第一实施方式中的相关描述,为避免重复,在此不再赘述。

需要说明的是,本实施方式中的上述各示例均为为方便理解进行的举例说明,并不对本申请的技术方案构成限定。

本实施方式中,在检测到终端进入读卡器的射频范围后,即用户接近读卡器后,无需点亮终端的屏幕,进入选卡程序,人工选择智能卡进行刷卡,有利于减少用户操作,提高刷卡的便捷性。而且,对终端内的各个候选智能卡进行是否满足过滤条件的判断,获取符合过滤条件的各个待选智能卡,有利于得到符合过滤条件的各个待选智能卡,从而缩小遍历范围,提高遍历速度,以提高选卡速度。通过各个待选智能卡的优先级从高到低的顺序依次遍历各个待选智能卡,有利于以合理的顺序依次根据各个待选智能卡的信息,尝试与读卡器建立通信连接,有利于减小尝试的次数,快速的成功与读卡器建立通信连接,从而进一步提高选卡的速度。

本申请的第四实施方式涉及一种用于nfc卡模拟模式的选卡方法。下面对本实施方式的用于nfc卡模拟模式的选卡方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

本实施例的用于nfc卡模拟模式的选卡方法的流程图可以如图5所示,包括:

步骤501:获取终端内满足预设的筛选条件的各个候选智能卡。

其中,步骤501与第二实施方式中步骤201大致相同,为避免重复此处不再赘述。

步骤502:在检测到终端进入读卡器的射频范围后,对终端内的各个候选智能卡进行是否满足过滤条件的判断,获取符合过滤条件的各个待选智能卡。

步骤503:确定各个待选智能卡的优先级。

步骤504:根据各个待选智能卡的优先级从高到低的顺序,依次遍历各个待选智能卡,并根据当前遍历到的待选智能卡的信息,尝试与读卡器建立通信连接。

步骤505:若根据当前遍历到的待选智能卡的信息,与读卡器成功建立通信连接,通过当前遍历到的待选智能卡与读卡器进行刷卡操作。

可以理解的是,本实施例中,在终端进入读卡器的射频范围之前,先在无需结合读卡器的信息的情况下,对终端内的各智能卡进行筛选,得到满足筛选条件的各个候选智能卡。在终端进入读卡器的射频范围之后,可以根据终端内的各候选智能卡的信息和读卡器的信息,得到过滤后的符合过滤条件的各个待选智能卡。

本实施方式中,终端在还未进入读卡器的射频范围时,先合理的筛选出满足筛选条件的各个候选智能卡,有利于将候选智能卡的数量控制在合理的范围内,在不影响与读卡器建立通信连接的成功率的同时提高与读卡器成功建立通信连接的速度。另外,终端进入射频范围后过,再过滤掉部分候选智能卡,得到符合过滤条件的各个待选智能卡,有利于进一步缩小遍历范围,提高遍历速度,从而提高选卡速度。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本申请第五实施例涉及一种芯片,可参考图6,芯片601位于终端内且与终端内的存储器602连接,存储器602存储有可被芯片601执行的指令,指令被芯片601执行,以使芯片601能够执行上述任一实施例所述的用于nfc卡模拟模式的选卡方法。

不难发现,本实施方式为与第一至第四实施方式相对应的装置实施例,本实施方式可与第一至第四实施方式中任一实施方式互相配合实施。第一至第四实施方式中任一实施方式提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一至第四实施方式中。

本申请第六实施例涉及一种终端,参考图6,包括:芯片601,以及与芯片601连接的存储器602。

其中,存储器和芯片采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个芯片和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经芯片处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给芯片。

芯片负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储芯片在执行操作时所使用的数据。

本申请第七实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1