CN106255039B - 一种检测移动终端与非接智能卡连接异常的方法及装置 - Google Patents
一种检测移动终端与非接智能卡连接异常的方法及装置 Download PDFInfo
- Publication number
- CN106255039B CN106255039B CN201610644622.7A CN201610644622A CN106255039B CN 106255039 B CN106255039 B CN 106255039B CN 201610644622 A CN201610644622 A CN 201610644622A CN 106255039 B CN106255039 B CN 106255039B
- Authority
- CN
- China
- Prior art keywords
- smart card
- module
- connection
- mobile terminal
- card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/11—Allocation or use of connection identifiers
Abstract
本发明公开了一种检测移动终端与非接智能卡连接异常的方法及装置,所述方法包括:若移动终端检测到非接智能卡进场时,移动终端获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签;和非接智能卡建立连接,判断是否连接成功,如果是,则移动终端检测和非接智能卡的连接状态,当连接状态为有效时,则返回继续检测和非接智能卡的连接状态;当连接状态为无效时或判断出没有和非接智能卡连接成功后,移动终端通知用户非接智能卡连接异常,并将卡对象置为无卡状态。本发明公开的这种检测移动终端与非接智能卡连接异常的方法,可以让用户快速和准确的获知移动终端与非接智能卡连接异常,从而完善了移动终端的性能并且提升了用户体验。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种检测移动终端与非接智能卡连接异常的方法及装置。
背景技术
NFC(Near Field Communication,近场通信)技术,是一种短距高频的无线电技术,能在短距离内与兼容设备进行识别和数据交换。目前这项技术已被广泛应用于通信领域中。
现有技术中,对于支持NFC技术的移动终端,当其检测到支持NFC技术的非接智能卡时,移动终端会通知用户检测到了非接智能卡,但当该非接智能卡与移动终端连接异常时,例如非接智能卡从移动终端的NFC通讯场消失等,移动终端却不会告知用户,这导致在一些使用NFC通信的场合中会降低用户的体验。
发明内容
本发明解决了上述技术问题。
本发明提供了一种检测移动终端与非接智能卡连接异常的方法,包括:若移动终端检测到非接智能卡进场时,执行步骤s1;
步骤s1:所述移动终端获取与所述非接智能卡对应的NFC标签,将卡对象更新为所述NFC标签;
步骤s2:所述移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤s3;否则,执行步骤s4;
步骤s3:所述移动终端检测和所述非接智能卡的连接状态,当连接状态为有效时,则返回步骤s3;当连接状态为无效时,执行步骤s4;
步骤s4:所述移动终端通知用户非接智能卡连接异常,将所述卡对象置为无卡状态。
本发明还提供了一种检测移动终端与非接智能卡连接异常的装置,包括:第一检测模块、第一获取模块、第一更新模块、第一连接模块、第一判断模块、第二检测模块、第一通知模块和第一设置模块;
所述第一检测模块,用于检测非接智能卡进场;
所述第一获取模块,用于获取与所述非接智能卡对应的NFC标签;
所述第一更新模块,用于将卡对象更新为所述NFC标签;
所述第一连接模块,用于当所述第一更新模块将卡对象更新为所述NFC标签后,和非接智能卡建立连接;
所述第一判断模块,用于判断所述第一连接模块是否和所述非接智能卡连接成功;
所述第二检测模块,用于当所述第一判断模块判定为是后,检测和所述非接智能卡的连接状态;以及当自身检测出连接状态为有效时,继续检测和所述非接智能卡的连接状态;
所述第一通知模块,用于当所述第一判断模块判定为否后,通知用户非接智能卡连接异常;以及当所述第二检测模块检测出连接状态为无效时,通知用户非接智能卡连接异常;
所述第一设置模块,用于当所述第一判断模块判定为否后,将卡对象置为无卡状态;以及当所述第二检测模块检测出连接状态为无效时,将卡对象置为无卡状态。
本发明的有益效果为:本发明提供了一种检测移动终端与非接智能卡连接异常的方法及装置,通过这种检测移动终端与非接智能卡连接异常的方法及装置,可以让用户快速和准确的获知移动终端与非接智能卡连接异常,从而完善了移动终端的性能并且提升了用户体验。
附图说明
图1为本发明实施例1提供的一种检测移动终端与非接智能卡连接异常的方法的操作流程图;
图2为本发明实施例2提供的一种检测移动终端与非接智能卡连接异常的方法的操作流程图;
图3-图5为本发明实施例2提供的一种检测移动终端与非接智能卡连接异常的方法的操作流程图;
图6为本发明实施例4提供的一种检测移动终端与非接智能卡连接异常的方法的操作流程图;
图7-图9为本发明实施例4提供的一种检测移动终端与非接智能卡连接异常的方法的操作流程图;
图10为本发明实施例4提供的一种检测移动终端与非接智能卡连接异常的方法中的第二监听线程的操作流程图;
图11为本发明实施例5提供的一种检测移动终端与非接智能卡连接异常的方法的操作流程图;
图12为本发明实施例6提供的一种检测移动终端与非接智能卡连接异常的装置的结构图。
具体实施方法
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供了一种检测移动终端与非接智能卡连接异常的方法,如图1所示,包括:若移动终端检测到非接智能卡进场时,执行步骤s1;
步骤s1:移动终端获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签;
步骤s2:移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤s3;否则,执行步骤s4;
具体地,移动终端的应用程序调用系统的连接接口和非接智能卡建立连接,判断是否获取到来自系统的建立连接异常,如果是,则判定连接失败,执行步骤s4;否则,判定连接成功;执行步骤s3。
步骤s3:移动终端检测和非接智能卡的连接状态,当连接状态为有效时,则返回步骤s3;当连接状态为无效时,执行步骤s4;
具体地,移动终端的应用程序调用系统的已连接接口获取来自系统的和非接智能卡的连接状态标志,根据连接状态标志检测和非接智能卡的连接状态,当连接状态标志为有效时,则返回步骤s3;当连接状态标志为无效时,则执行步骤s4。
步骤s4:移动终端通知用户非接智能卡连接异常,将卡对象置为无卡状态。
本实施例中,在如图1的提供的方法的基础上,还可以包括:
若移动终端获取到用户请求时,执行步骤r1;
步骤r1:移动终端根据卡对象判断非接智能卡是否处于NFC通讯场中,当判断出为是后,移动终端根据用户请求与非接智能卡进行通讯。
具体地,移动终端判断卡对象是否为无卡状态,当判断出卡对象不为无卡状态后,则判断出非接智能卡处于NFC通讯场中,移动终端根据用户请求与非接智能卡进行通讯。
本实施例中,当移动终端判断和非接智能卡连接成功后,执行步骤s3之前,还包括:检测通讯标志是否被置位,如果是,则执行步骤s3;否则,断开和非接智能卡的连接,返回步骤s2;当移动终端检测出非接智能卡处于NFC通讯场中后,移动终端根据用户请求与非接智能卡进行通讯前,还包括:置位通讯标志;移动终端和非接智能卡建立连接之前或者移动终端断开和非接智能卡的连接之后,还包括复位通讯标志。
本实施例中,步骤s3还可以替换为:检测通讯标志是否被置位,如果是,则当移动终端断开和非接智能卡的连接后,返回步骤s2;否则,断开和非接智能卡的连接,返回步骤s2;当移动终端检测出非接智能卡处于NFC通讯场中后,移动终端与非接智能卡进行通讯前,还包括:置位通讯标志;置位通讯标志后,还包括:检测和非接智能卡的连接状态,当连接状态为有效时,则继续检测和非接智能卡的连接状态;当连接状态为无效时,执行步骤s4;当移动终端接收到来自非接智能卡的通讯应答后,停止检测和非接智能卡的连接状态,断开和非接智能卡的连接,执行步骤s2;移动终端和非接智能卡建立连接之前或者移动终端断开和非接智能卡的连接之后,还包括复位通讯标志。
其中,断开和非接智能卡的连接,可以具体为:移动终端的应用程序调用系统的断开连接接口,断开和非接智能卡的连接。
其中,断开和非接智能卡的连接,之后还可以包括:移动终端判断是否成功和非接智能卡断开连接,如果是,返回步骤s2;否则,执行步骤s4。
本实施例中,步骤s1之前还包括:移动终端的应用程序将NFC标签消息类型注册到系统;相应地,步骤s1具体为:若移动终端的应用程序检测到与NFC标签消息类型对应的非接智能卡进场时,移动终端的应用程序获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签。
其中,移动终端的应用程序将NFC标签消息类型注册到系统具体包括:步骤a1和/或步骤a2;
步骤a1具体为:移动终端的应用程序注册广播,并设置广播的过滤器,在广播的过滤器中将NFC标签消息类型注册到系统;
步骤a2具体为:应用程序注册NFC标签前台发布系统,将NFC标签消息类型注册到系统中。
本实施例中,步骤s2之前还包括:移动终端的应用程序初始化句柄对象;
步骤s4具体为:移动终端的应用程序使用句柄对象调用系统的创建消息接口创建当前异常消息,将当前异常消息设置为连接异常消息,调用系统的发送消息接口向句柄对象发送连接异常消息,根据句柄对象通知用户非接智能卡连接异常,将卡对象置为无卡状态。
本实施例提供了一种检测移动终端与非接智能卡连接异常的方法,通过这种检测移动终端与非接智能卡连接异常的方法,可以让用户快速和准确的获知移动终端与非接智能卡连接异常,从而完善了移动终端的性能并且提升了用户体验。
实施例2
本实施例提供了一种检测移动终端与非接智能卡连接异常的方法,如图2所示,包括:
步骤101:当移动终端开启非接通讯场后,若移动终端检测到非接智能卡进场时,执行步骤102;若移动终端获取到用户请求时,则执行步骤106;
本实施例中,非接智能卡具有NFC模块,支持NFC技术。
步骤102:移动终端获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签;
其中,将卡对象更新为NFC标签之前还包括:移动终端初始化卡对象。
步骤103:移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤104;否则,执行步骤105;
步骤104:移动终端检测和非接智能卡的连接状态,当连接状态为有效时,则返回步骤104;当连接状态为无效时,则执行步骤105;
步骤105:移动终端通知用户非接智能卡连接异常,将卡对象置为无卡状态,返回步骤101。
具体地,移动终端通知用户非接智能卡已从NFC通讯场消失,将卡对象设置为空,返回步骤101。
本实施例中,将卡对象置为无卡状态具体为将卡对象设置为空。
步骤106:移动终端根据卡对象判断非接智能卡是否处于NFC通讯场中,如果是,则执行步骤107;否则,返回步骤101。
具体地,移动终端判断卡对象是否为无卡状态,如果否,则判定非接智能卡处于NFC通讯场中,执行步骤107;如果是,则判定非接智能卡不处于NFC通讯场中,返回步骤101。
步骤107:移动终端根据用户请求与非接智能卡进行通讯,当通讯结束后,返回步骤101。
需说明的是,若移动终端检测到非接智能卡进场后,在执行步骤102-105的过程中,若移动终端获取到用户请求时,移动终端开始并行执行步骤106;若移动终端获取到用户请求后,在执行步骤106-107的过程中,若移动终端检测到非接智能卡进场,移动终端开始并行执行步骤102。具体地,移动终端可以通过线程来实现上述技术方案。相应地,本实施例提供的一种检测移动终端与非接智能卡连接异常的方法,如图3-图5所示,具体包括:
步骤201:应用程序初始化卡对象;
本实施例中,移动终端中包括应用程序和系统。
需说明的是,本实施例中系统具体为Android系统。
具体地,应用程序将卡对象apiIsodep设置为空。
步骤202:应用程序检测系统是否支持NFC技术且是否已开启NFC通讯场,如果是,则执行步骤203;否则,结束;
具体地,应用程序调用系统的获取NFC适配器函数获取NFC适配器对象;判断NFC适配器对象是否不为空,如果否,则结束;如果是,则判定自身支持NFC技术,继续通过NFC适配器对象调用系统的获取NFC状态函数获取NFC状态标志,判断NFC状态标志是否为有效,如果是,则判定自身已开启NFC通讯场;否则,判定自身没有开启NFC通讯场,结束;
本实施例中,当NFC状态标志为TURE时,NFC状态标志为有效;当NFC状态标志为FALSE时,NFC状态标志为无效。
更加具体地,应用程序调用系统的获取NFC适配器函数getDefaultAdapter获取NFC适配器对象nfcAdapter;判断NFC适配器对象nfcAdapter是否不为空,如果否,则结束;如果是,则判定自身支持NFC技术,继续通过NFC适配器对象nfcAdapter调用系统的获取NFC状态函数isEnabled(),获取NFC状态标志,判断NFC状态标志是否为TURE,如果是,则判定自身已开启NFC通讯场;否则,判定自身没有开启NFC通讯场,结束;
其中,应用程序调用系统的获取NFC适配器函数获取NFC适配器对象具体为:nfcAdapter=NfcAdapter.getDefaultAdapter(context);
应用程序通过NFC适配器对象调用系统的获取NFC状态函数获取NFC状态标志,具体为:nfcAdapter.isEnabled()。
步骤203:应用程序将NFC标签消息类型注册到系统;
本步骤具体包括:步骤2031和/或步骤2032。
步骤2031:应用程序注册广播,并设置广播的过滤器,在广播的过滤器中将NFC标签消息类型注册到系统;
具体地,应用程序在系统的AndroidManifest.xml配置文件中,注册广播,并设置广播的过滤器intent-filter,在广播的过滤器intent-filter中将NFC标签消息类型注册到系统;
步骤2032:应用程序注册NFC标签前台发布系统,将NFC标签消息类型注册到系统中。
更加具体地,应用程序将Activity类型的对象、PendingIntent类型的对象、包括有NFC标签消息类型的广播过滤器数组分别作为参数,使用NFC适配器对象nfcAdapter调用系统的enableForegroundDispatch()函数,注册前台发布系统,将NFC标签消息类型注册到系统中。
本实施例中,NFC标签消息类型包括NDFF_DISCOVERED、TECH_DISCOVERED和TAG_DISCOVERED中的至少一种;优选地,NFC标签消息类型为TAG_DISCOVERED。
步骤204:当应用程序检测到与NFC标签消息类型对应的非接智能卡进场时,应用程序获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签,打开第一监听线程;当应用程序获取到用户请求时,打开通讯线程;
具体地,当应用程序通过消息通函数获取来自系统的与NFC标签消息类型对应的非接智能卡的NFC消息对象后,判定检测到与NFC标签消息类型对应的非接智能卡进场,应用程序获取与非接智能卡对应的NFC标签,打开第一监听线程;当应用程序的用户点击函数获取到来自用户的点击事件后,判定获取到用户请求,打开通讯线程。
更加具体地,当系统检测到与NFC标签消息类型对应的非接智能卡进场后,将非接智能卡的NFC消息对象intent通过消息通知函数onNewIntent()发送给应用程序,当应用程序通过消息通知函数onNewIntent()获取来自系统的非接智能卡的NFC消息对象intent后,判定检测到与NFC标签消息类型对应的非接智能卡进场,应用程序通过NFC消息对象intent使用预设的EXTRA_TAG参数调用系统的获取NFC标签函数getParcelableExtra()获取与非接智能卡对应NFC标签,并将卡对象更新为NFC标签,打开第一监听线程;当应用程序的用户点击函数onClick()获取到来自用户的点击事件view后,判定获取到用户请求,打开通讯线程。
其中,应用程序通过NFC消息对象intent使用预设的EXTRA_TAG参数调用系统的获取NFC标签函数getParcelableExtra()获取与非接智能卡对应NFC标签,并将卡对象更新为NFC标签,具体为:
Tag tag=(Tag)intent.getParcelableExtra(EXTRA_TAG);其中,tag为NFC标签;将卡对象更新为NFC标签具体为:apiIsodep=IsoDep.get(tag);
本实施例中NFC标签具体为NFC标签对象。
其中,应用程序在第一监听线程中,可以如图4所示,具体执行:
步骤301:应用程序和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤302;否则,执行步骤303;
具体地,应用程序调用系统的连接接口connect()和非接智能卡建立连接,判断是否获取到来自系统的连接异常,如果是,则判定连接失败,执行步骤303;否则,判定连接成功,执行步骤302。
其中,应用程序调用系统的连接接口和非接智能卡建立连接,具体为:isoDepTag.connect();
步骤302:应用程序检测和非接智能卡的连接状态,当连接状态为有效时,则返回步骤302;当连接状态为无效时,则执行步骤303;
具体地,应用程序调用系统的已连接接口isConnected()获取来自系统的和非接智能卡的连接状态标志,根据连接状态标志检测和非接智能卡的连接状态,当连接状态标志为有效时,则检测出和非接智能卡处于连接状态,则返回步骤302;当连接状态标志为无效时,检测出和非接智能卡已断开连接,则执行步骤303。
其中,应用程序检测是否和非接智能卡已断开连接,具体为:if(!isoDepTag.isConnected()),其中,isConnected()为已连接接口。
步骤303:应用程序通知用户非接智能卡连接异常,将卡对象置为无卡状态,关闭第一监听线程。
具体地,应用程序创建连接异常消息,通过系统的发送消息接口发送连接异常消息,通知用户非接智能卡连接异常,将卡对象置为空,关闭第一监听线程。
更近一步地,应用程序根据句柄对象调用系统的创建消息接口obtainMessage()创建当前异常消息,将当前异常消息msg设置为连接异常消息,调用系统的发送消息接口sendToTarget()向句柄对象发送连接异常消息,根据句柄对象通知用户非接智能卡连接异常,将卡对象置为无卡状态,关闭第一监听线程。相应地,步骤301之前还包括:初始化句柄对象。具体地:可以在应用程序打开第一监听线程之前,初始化句柄对象。
例如,应用程序根据句柄对象tagHandler调用系统的创建消息接口obtainMessage()创建当前异常消息msg,将当前异常消息msg设置为连接异常消息LAG_LOST,调用系统的发送消息接口sendToTarget()向句柄对象tagHandler发送连接异常消息,根据句柄对象tagHandler通知用户非接智能卡从NFC通讯场消失,将卡对象置为空,关闭第一监听线程。
本实施例中,连接异常消息具体为非接智能卡从NFC通讯场消失的消息。
其中,应用程序在通讯线程中,可以如图5所示,具体执行:
步骤401:应用程序根据卡对象判断非接智能卡是否处于NFC通讯场中,如果是,则执行步骤402;否则,关闭通讯线程;
具体地,应用程序判断卡对象是否为无卡状态,如果否,则判定非接智能卡处于NFC通讯场中,执行步骤402;如果是,判定非接智能卡不处于NFC通讯场中,关闭通讯线程。
步骤402:应用程序根据用户请求与非接智能卡进行通讯;当通讯结束后,关闭通讯线程。
具体地,应用程序根据用户请求组织通讯请求,将通讯请求作为参数,调用系统的通讯接口,将通讯请求通过系统发送给非接智能卡,获取非接智能卡返回的通讯应答,当获取到非接智能卡的通讯应答后,通讯结束,关闭通讯线程。
例如,应用程序根据用户请求组织通讯请求send,将通讯请求send作为参数,调用系统的通讯接口transceive(),将通讯请求send通过系统发送给非接智能卡,获取非接智能卡返回的通讯应答rsp,当获取到非接智能卡的通讯应答rsp后,通讯结束,关闭通讯线程。
实施例3
本实施例提供了一种检测移动终端与非接智能卡连接异常的方法,包括:
步骤w1:当移动终端开启非接通讯场后,若移动终端检测到非接智能卡进场时,执行步骤w2;若移动终端获取到用户请求之后,执行步骤x1;
本实施例中,非接智能卡具有NFC模块,支持NFC技术。
步骤w2:移动终端获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签;
步骤w3:移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤w4;否则,执行步骤w7;
步骤w4:移动终端检测通讯标志是否被置位,当检测出通讯标志被置位后,则执行步骤w5;当检测出通讯标志没有被置位后,执行步骤w6;
步骤w5:移动终端检测和非接智能卡的连接状态,当连接状态为有效时,则返回步骤w5;当连接状态为无效时,执行步骤w6;
步骤w6:移动终端断开和非接智能卡的连接,返回步骤w3;
步骤w7:移动终端通知用户非接智能卡连接异常,将卡对象置为无卡状态;
步骤x1:移动终端根据卡对象判定非接智能卡是否处于NFC通讯场中,如果是,则置位通讯标志,根据用户请求与非接智能卡进行通讯,当通讯结束后,执行步骤w5;否则,执行步骤w1;
本实施例中,移动终端和非接智能卡建立连接之前或者移动终端断开和非接智能卡的连接之后,还包括复位通讯标志。
本实施例还提供了一种检测移动终端与非接智能卡连接异常的方法,包括:
步骤y1:当移动终端开启非接通讯场后,若移动终端检测到非接智能卡进场时,执行步骤y2;若移动终端获取到用户请求之后,执行步骤z1;
本实施例中,非接智能卡具有NFC模块,支持NFC技术。
步骤y2:移动终端获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签;
步骤y3:移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤y4;否则,执行步骤y6;
步骤y4:移动终端检测通讯标志是否被置位,当检测出通讯标志被置位后,当移动终端断开和非接智能卡的连接后,返回步骤y3;当检测出通讯标志没有被置位后,执行步骤y5;
步骤y5:移动终端断开和非接智能卡的连接,返回步骤y3;
步骤y6:移动终端通知用户非接智能卡连接异常,将卡对象置为无卡状态;
步骤z1:移动终端根据卡对象判定非接智能卡是否处于NFC通讯场中,如果是,则置位通讯标志,根据用户请求与非接智能卡进行通讯并检测和非接智能卡的连接状态,当连接状态为有效时,则继续检测和非接智能卡的连接状态;当连接状态为无效时,执行步骤y6;当移动终端接收到来自非接智能卡的通讯应答后,停止检测和非接智能卡的连接状态,断开和非接智能卡的连接,执行步骤y3;
本实施例中,移动终端和非接智能卡建立连接之前或者移动终端断开和非接智能卡的连接之后,还包括复位通讯标志。
实施例4
本实施例为实施例3的一个具体实例,提供了一种检测移动终端与非接智能卡连接异常的方法,如图6所示,包括:
步骤501:当移动终端开启非接通讯场后,若移动终端检测到非接智能卡进场时,执行步骤502;若移动终端获取到用户请求时,则开始并行执行步骤507;
步骤502:移动终端获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签;
其中,将卡对象更新为NFC标签之前还包括:移动终端初始化卡对象。
步骤503:移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤504;否则,执行步骤506;
具体地,移动终端调用系统的连接接口connect()和非接智能卡建立连接,判断是否获取到来自系统的建立连接异常,如果是,则判定连接失败,执行步骤504;否则,判定连接成功,执行步骤506。
其中,移动终端调用系统的连接接口和非接智能卡建立连接,具体为:isoDepTag.connect();
步骤504:移动终端检测通讯标志是否被置位,如果是,则当移动终端断开和非接智能卡的连接后,返回步骤503;否则,执行步骤505;
步骤505:移动终端断开和非接智能卡的连接,返回步骤503;
具体地,移动终端调用系统的断开连接接口close(),断开和非接智能卡的连接,返回步骤503;
本实施例中,移动终端调用系统的断开连接接口,具体为:isoDepTag.close();
步骤506:移动终端通知用户非接智能卡连接异常,将卡对象置为无卡状态,返回步骤501。
具体地,移动终端调用系统的发送消息接口sendToTarget()通知用户非接智能卡从NFC通讯场消失,将卡对象置为空,返回步骤501。
步骤507:移动终端根据卡对象判断非接智能卡是否处于NFC通讯场中,如果是,则执行步骤508;否则,返回步骤501。
具体地,移动终端判断卡对象是否为无卡状态,如果否,则判定非接智能卡处于NFC通讯场中,执行步骤508;如果是,则判定非接智能卡不处于NFC通讯场中,返回步骤501。
步骤508:移动终端置位通讯标志;
步骤509:移动终端根据用户请求与非接智能卡进行通讯,并检测和非接智能卡的连接状态,当连接状态为有效时,则返回步骤509;当连接状态为无效时,则执行步骤510;当完成通讯后,停止检测和非接智能卡的连接状态,执行步骤511;
具体地,移动终端进行通讯,并调用系统的已连接接口isConnected()获取来自系统的移动终端和非接智能卡的连接状态标志,根据连接状态标志检测和非接智能卡的连接状态,当连接状态标志为有效时,则检测出和非接智能卡的连接状态为有效,则返回步骤509;当连接状态标志为无效时,检测出和非接智能卡的连接状态为无效,则执行步骤510;当完成通讯后,停止检测和非接智能卡的连接状态,执行步骤511。
其中,移动终端调用系统的已连接接口isConnected()获取来自系统的移动终端和非接智能卡的连接状态标志,具体为:isoDepTag.isConnected();根据连接状态标志检测和非接智能卡的连接状态,具体为:if(!isoDepTag.isConnected())。
本实施例中,当连接状态标志为TURE时,连接状态标志为有效;当连接状态标志为FALSE时,连接状态标志为无效。
其中,当完成通讯后,还可以直接返回步骤501。
步骤510:移动终端通知用户和非接智能卡连接异常,将卡对象置为无卡状态,返回步骤501。
具体地:移动终端调用系统的发送消息接口通知用户非接智能卡从NFC通讯场消失,将卡对象置为空,返回步骤501。
步骤511:移动终端断开和非接智能卡的连接,返回步骤503;
本实施例中,移动终端和非接智能卡建立连接之前或者与非接智能卡断开连接之后,还包括:复位通讯标志。
需说明的是,若移动终端检测到非接智能卡进场后,在执行步骤502-506的过程中,若移动终端获取到用户请求时,移动终端开始并行执行步骤507;若移动终端获取到用户请求后,在执行步骤507-511的过程中,若移动终端检测到非接智能卡进场,移动终端开始并行执行步骤502。具体地,移动终端可以通过线程来实现上述技术方案。相应地,本实施例中提供了一种检测移动终端与非接智能卡连接异常的方法,具体如图7-图9所示,包括:
步骤601:应用程序初始化卡对象;
具体地,应用程序初始化卡对象apiIsodep为空。
本实施例中,移动终端中包括应用程序和系统。
步骤602:应用程序检测系统是否支持NFC技术且是否已开启NFC通讯场,如果是,则执行步骤603;否则,结束;
具体地,应用程序调用系统的获取NFC适配器函数获取NFC适配器对象;判断NFC适配器对象是否不为空,如果否,则结束;如果是,则判定自身是否支持NFC技术,继续通过NFC适配器对象调用系统的获取NFC状态函数获取NFC状态标志,判断NFC状态标志是否为有效,如果是,则判定自身已开启NFC通讯场;否则,判定自身没有开启NFC通讯场,结束;
更加具体地,应用程序调用系统的获取NFC适配器函数getDefaultAdapter获取NFC适配器对象nfcAdapter;判断NFC适配器对象nfcAdapter是否不为空,如果否,则结束;如果是,则判定自身支持NFC技术,继续通过NFC适配器对象nfcAdapter调用系统的获取NFC状态函数isEnabled(),获取NFC状态标志,判断NFC状态标志是否为TURE,如果是,则判定自身已开启NFC通讯场;否则,判定自身没有开启NFC通讯场,结束;
本实施例中,当NFC状态标志为TURE时,NFC状态标志为有效;当NFC状态标志为FALSE时,NFC状态标志为无效。
其中,应用程序调用系统的获取NFC适配器函数获取NFC适配器对象具体为:nfcAdapter=NfcAdapter.getDefaultAdapter(context);
应用程序通过NFC适配器对象调用系统的获取NFC状态函数获取NFC状态标志,具体为:nfcAdapter.isEnabled()。
步骤603:应用程序将NFC标签消息类型注册到系统;
本步骤具体包括:步骤6031和/或步骤6032。
步骤6031:应用程序注册广播,并设置广播的过滤器,在广播的过滤器中将NFC标签消息类型注册到系统;
具体地,应用程序在系统的AndroidManifest.xml配置文件中,注册广播,并设置广播的过滤器intent-filter,在广播的过滤器intent-filter中将NFC标签消息类型注册到系统;
步骤6032:应用程序注册NFC标签前台发布系统,将NFC标签消息类型注册到系统中。
更加具体地,应用程序将Activity类型的对象、PendingIntent类型的对象、包括有NFC标签消息类型的广播过滤器数组分别作为参数,使用NFC适配器对象nfcAdapter调用系统的enableForegroundDispatch()函数,注册前台发布系统,将NFC标签消息类型注册到系统中。
本实施例中,NFC标签消息类型包括NDFF_DISCOVERED、TECH_DISCOVERED或TAG_DISCOVERED中的至少一种;优选地,NFC标签消息类型为TAG_DISCOVERED。
步骤604:当应用程序检测到与NFC标签消息类型对应的非接智能卡进场时,应用程序获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签,复位连接标志,打开第一监听线程;当应用程序获取到用户请求时,打开通讯线程;
本实施例中,非接智能卡具有NFC模块,支持NFC技术。
具体地,当应用程序通过消息通函数获取来自系统的非接智能卡的NFC消息对象后,判定检测到非接智能卡进场,应用程序获取与非接智能卡对应的NFC标签,打开第一监听线程;当应用程序的用户点击函数获取到来自用户的点击事件后,判定获取到用户请求,打开通讯线程。
更加具体地,当系统检测到与NFC标签消息类型对应的非接智能卡进场后,将非接智能卡的NFC消息对象intent通过消息通知函数onNewIntent()发送给应用程序,当应用程序通过消息通知函数onNewIntent()获取来自系统的非接
智能卡的NFC消息对象intent后,判定检测到非接智能卡进场,应用程序通过NFC消息对象intent使用预设的EXTRA_TAG参数调用系统的获取NFC标签函数getParcelableExtra()获取与非接智能卡对应NFC标签,并将卡对象更新为NFC标签,打开第一监听线程;当应用程序的用户点击函数onClick()获取到来自用户的点击事件后,判定获取到用户请求,打开通讯线程。
其中,消息通知函数具体为:protected void onNewIntent(Intent intent);用户点击函数具体为:public void onClick(View view)。
其中,应用程序通过NFC消息对象intent使用预设的EXTRA_TAG参数调用系统的获取NFC标签函数getParcelableExtra()获取与非接智能卡对应NFC标签,并将卡对象更新为NFC标签,具体为:
Tag tag=(Tag)intent.getParcelableExtra(EXTRA_TAG);其中,tag为NFC标签;将卡对象更新为NFC标签具体为:apiIsodep=IsoDep.get(tag);
本实施例中NFC标签具体为NFC标签对象。
其中,应用程序在第一监听线程中,可以如图8所示,具体执行:
步骤701:应用程序置位第一监听线程开关标志和复位通讯标志;
步骤702:应用程序根据第一监听线程开关标志和卡对象判断是否关闭第一监听线程,如果是,则关闭第一监听线程;否则,执行步骤703;
具体地,应用程序判断第一监听线程开关标志是否被复位且卡对象是否为空,如果是,则关闭第一监听线程;否则,执行步骤703。
步骤703:应用程序和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤704;否则,执行步骤707;
具体地,应用程序调用系统的连接接口connect()和非接智能卡建立连接,判断是否获取到来自系统的建立连接异常,如果是,则判定连接失败,执行步骤707;否则,判定连接成功,执行步骤704。
其中,应用程序调用系统的连接接口和非接智能卡建立连接,具体为:isoDepTag.connect();
步骤704:应用程序检测通讯标志是否被置位,如果是,则执行步骤708;否则,执行步骤705;
步骤705:应用程序进入休眠状态,休眠结束后判断是否存在连接异常,如果是,则执行步骤707;否则,执行步骤706;
具体地,应用程序调用系统的休眠接口进入休眠状态,休眠第一预设时间,第一预设时间后,判断是否获取到来自系统的休眠连接异常,如果是,则判定存在连接异常,执行步骤707;否则,执行步骤706。
优选地,第一预设时间为50ms。
其中,应用程序调用系统的休眠接口进入休眠状态具体为:Thread.sleep(50);
步骤706:应用程序断开和非接智能卡的连接,判断是否成功和非接智能卡断开连接,如果是,则返回步骤702;否则,执行步骤707;
具体地,应用程序调用系统的断开连接接口,判断是否获取到来自系统的断开连接异常,如果否,则判定成功和非接智能卡断开连接,则返回步骤702;否则,执行步骤707;
本实施例中,应用程序调用系统的断开连接接口,具体为:isoDepTag.close();
步骤707:应用程序通知用户非接智能卡连接异常,将卡对象置为无卡状态,关闭第一监听线程。
具体地,应用程序调用系统的发送消息接口通知用户非接智能卡连接异常,将卡对象置为空,关闭第一监听线程。
更近一步地,应用程序根据句柄对象调用系统的创建消息接口obtainMessage()创建当前异常消息,将当前异常消息msg设置为连接异常消息,调用系统的发送消息接口sendToTarget()向句柄对象发送连接异常消息,根据句柄对象通知用户非接智能卡连接异常,将卡对象置为空,关闭第一监听线程。相应地,步骤707之前还包括:初始化句柄对象。
例如,应用程序根据句柄对象tagHandler调用系统的创建消息接口obtainMessage()创建当前异常消息msg,将当前异常消息msg设置为连接异常消息LAG_LOST,调用系统的发送消息接口sendToTarget()向句柄对象tagHandler发送连接异常消息,根据句柄对象tagHandler通知用户非接智能卡从NFC通讯场消失,将卡对象置为空,关闭第一监听线程。
本实施例中,连接异常消息具体为非接智能卡从NFC通讯场消失的消息。
步骤708:应用程序复位第一监听线程开关标志,通知通讯线程,第一监听线程已关闭,返回步骤702或者关闭第一监听线程;
其中,通知通讯线程,第一监听线程已关闭具体为:应用程序调用系统的唤醒接口通知通讯线程,第一监听线程已关闭,返回步骤702;其中,唤醒接口具体为:notify()。
本实施例中,第一监听线程中,应用程序和非接智能卡建立连接之前,还包括:复位通讯标志。
其中,应用程序在通讯线程中,可以如图9所示,具体执行:
步骤801:应用程序根据卡对象判断非接智能卡是否处于NFC通讯场中,如果是,则执行步骤802;否则,关闭通讯线程;
具体地,应用程序判断卡对象是否为无卡状态,如果否,则判定非接智能卡处于NFC通讯场中,执行步骤802;如果是,则判定非接智能卡不处于NFC通讯场中,关闭通讯线程。
步骤802:应用程序检测连接标志是否被置位,如果是,则执行步骤805;否则,执行步骤803;
步骤803:应用程序置位通讯标志;
步骤804:应用程序判断是否第一监听线程是否结束,如果是,则置位连接标志,执行步骤805;否则,关闭通讯线程;
具体包括:步骤8041:应用程序判断在第二预设时间内是否获取到第一监听线程的结束通知,如果是,则执行步骤8042;否则,关闭通讯线程;
具体地,应用程序判断在第二预设时间内是否通过系统的等待接口接收到来自唤醒接口的第一监听线程已关闭的通知,如果是,则判定获取到第一监听线程的结束通知,执行步骤8042;否则,关闭通讯线程;
优选地,第二预设时间为200ms。
其中,应用程序判断在第二预设时间内是否通过系统的等待接口接收到来自唤醒接口的第一监听线程已关闭的通知,具体为:waitObject.wait(200);
步骤8042:应用程序判断第一监听线程开关标志是否被复位,如果是,则执行步骤805;否则,关闭通讯线程;
步骤805:应用程序根据用户请求与非接智能卡进行通讯并打开第二监听线程;
其中,应用程序根据用户请求与非接智能卡进行通讯具体为:应用程序根据用户请求组织通讯请求,将通讯请求作为参数,调用系统的通讯接口,将通讯请求通过系统发送给非接智能卡,获取非接智能卡返回的通讯应答,当获取到非接智能卡的通讯应答后,通讯结束。
例如,应用程序根据用户请求组织通讯请求send,将通讯请求send作为参数,调用系统的通讯接口transceive(),将通讯请求send通过系统发送给非接智能卡,获取非接智能卡返回的通讯应答rsp,当获取到非接智能卡的通讯应答rsp后,通讯结束。
步骤806:当通讯结束后,应用程序复位第二监听线程开关标志,关闭第二监听线程;断开和非接智能卡的连接,复位连接标志,打开第一监听线程;
其中,断开和非接智能卡的连接具体为:应用程序调用系统的断开连接接口断开和非接智能卡的连接。
步骤807:应用程序关闭通讯线程。
当步骤805中,应用程序打开第二监听线程后,如图10所示,执行如下步骤:
步骤a1:应用程序置位第二监听线程开关标志;
步骤a2:应用程序根据第二监听线程开关标志和卡对象判断是否关闭第二监听线程,如果是,则执行步骤a5;否则,执行步骤a3;
具体地,应用程序判断第二监听线程开关标志是否被复位和卡对象是否为非空,如果是,则执行步骤a5;否则,执行步骤a3。
步骤a3:应用程序检测和非接智能卡的连接状态,当连接状态为有效时,则返回步骤a2;当连接状态为无效时,则执行步骤a4;
具体地,应用程序调用系统的已连接接口获取来自系统的应用程序和非接智能卡的连接状态标志,根据连接状态标志检测和非接智能卡的连接状态,当连接状态标志为有效时,则检测出和非接智能卡处于连接状态,则执行步骤a2;当连接状态标志为无效时,检测出和非接智能卡已断开连接,则执行步骤a4。
其中,应用程序检测是否和非接智能卡已断开连接,具体为:if(!isoDepTag.isConnected()),其中,isConnected()为已连接接口。
步骤a4:应用程序复位第二监听线程开关标志;通知用户和非接智能卡连接异常,将卡对象置为无卡状态;
其中,通知用户和非接智能卡连接异常,将卡对象置为无卡状态,具体为:应用程序调用系统的发送消息接口通知用户非接智能卡从NFC通讯场消失,将卡对象置为空。
其中,应用程序调用系统的发送消息接口通知用户非接智能卡从NFC通讯场消失,具体为:应用程序根据句柄对象tagHandler调用系统的创建消息接口obtainMessage()创建当前异常消息,将当前异常消息msg设置为连接异常消息,调用系统的发送消息接口sendToTarget()向句柄对象发送连接异常消息,根据句柄对象通知用户非接智能卡从NFC通讯场消失。
步骤a5:应用程序关闭第二监听线程。
本实施例中,应用程序还可以不设置连接标志,相应地,步骤604具体为:当应用程序检测到与NFC标签消息类型对应的非接智能卡时,应用程序获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签,打开第一监听线程;当应用程序获取到用户请求时,打开通讯线程;相应地,步骤801中当应用程序根据卡对象判断非接智能卡处于NFC通讯场中后,直接执行步骤803,步骤804中应用程序判断第一监听线程结束后,可直接执行步骤805;步骤806还可以替换为:应用程序复位第二监听线程开关标志,关闭第二监听线程;断开和非接智能卡的连接,打开第一监听线程。
本实施例中,步骤805之后还可以执行步骤807;若步骤805之后,应用程序直接执行步骤807,应用程序还可以不设置连接标志,相应地,步骤604具体为:当应用程序检测到与NFC标签消息类型对应的非接智能卡时,应用程序获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签,打开第一监听线程;当应用程序获取到用户请求时,打开通讯线程;相应地,步骤801中当应用程序根据卡对象判断非接智能卡处于NFC通讯场中后,直接执行步骤803,步骤804中应用程序判断第一监听线程结束后,可直接进行步骤805,步骤805之后,直接执行步骤807。
实施例5
本实施例为实施例3的一个具体实例,提供了一种检测移动终端与非接智能卡连接异常的方法,具体如图11所示,包括:
步骤901:当移动终端开启非接通讯场后,若移动终端检测到非接智能卡进场时,执行步骤902;若移动终端获取到用户请求时,则开始并行执行步骤908;
步骤902:移动终端获取与非接智能卡对应的NFC标签,将卡对象更新为NFC标签;
其中,将卡对象更新为NFC标签之前还包括:移动终端初始化卡对象。
步骤903:移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤904;否则,执行步骤907;
步骤904:移动终端检测通讯标志是否被置位,如果是,则执行步骤905;否则,执行步骤906;
步骤905:移动终端检测和非接智能卡的连接状态,当连接状态为有效时,则返回步骤905;当连接状态为无效时,则执行步骤903;
本步骤中,当连接状态为无效时,还可以执行步骤907;
步骤906:移动终端断开和非接智能卡的连接,返回步骤903;
步骤907:移动终端通知用户非接智能卡连接异常,将卡对象置为无卡状态,返回步骤901。
具体地,移动终端通知用户非接智能卡已从NFC通讯场消失,将卡对象设置为空,关闭第一监听线程。
本实施例中,将卡对象置为无卡状态具体为将卡对象设置为空。
更近一步地,移动终端的应用程序根据句柄对象调用系统的创建消息接口obtainMessage()创建当前异常消息,将当前异常消息msg设置为连接异常消息,调用系统的发送消息接口sendToTarget()向句柄对象发送连接异常消息,根据句柄对象通知用户非接智能卡连接异常,将卡对象置为无卡状态,关闭第一监听线程。相应地,步骤907之前还包括:移动终端的应用程序初始化句柄对象。
本实施例中,连接异常消息具体为非接智能卡从NFC通讯场消失的消息。
步骤908:移动终端根据卡对象判断非接智能卡是否处于NFC通讯场中,如果是,则执行步骤909;否则,返回步骤901。
具体地,移动终端判断卡对象是否为无卡状态,如果否,则判定非接智能卡处于NFC通讯场中,执行步骤909;如果是,则判定非接智能卡不处于NFC通讯场中,返回步骤901。
步骤909:移动终端置位通讯标志;
步骤910:移动终端根据用户请求与非接智能卡进行通讯,当通讯结束后,移动终端断开和非接智能卡的连接,返回步骤903。
其中,应用程序根据用户请求与非接智能卡进行通讯具体为:应用程序根据用户请求组织通讯请求,将通讯请求作为参数,调用系统的通讯接口,将通讯请求通过系统发送给非接智能卡,获取非接智能卡返回的通讯应答,当获取到非接智能卡的通讯应答后,通讯结束。
例如,应用程序根据用户请求组织通讯请求send,将通讯请求send作为参数,调用系统的通讯接口transceive(),将通讯请求send通过系统发送给非接智能卡,获取非接智能卡返回的通讯应答rsp,当获取到非接智能卡的通讯应答rsp后,通讯结束。
本实施例中,移动终端和非接智能卡建立连接之前或者移动终端断开和非接智能卡的连接之后,还包括:复位通讯标志。
步骤910中,移动终端断开和非接智能卡的连接之后,还可以返回步骤901。
需说明的是,若移动终端检测到非接智能卡进场后,在执行步骤902-907的过程中,若移动终端获取到用户请求时,移动终端开始并行执行步骤908;若移动终端获取到用户请求后,在执行步骤908-910的过程中,若移动终端检测到非接智能卡进场,移动终端开始并行执行步骤902。具体地,移动终端可以通过线程来实现上述技术方案,具体通过线程来实现本实施例中提出的一种检测移动终端与非接智能卡连接异常的方法,可以通过参考其他实施例获得,本实施例中不再赘述。
实施例6
本实施例提供了一种检测移动终端与非接智能卡连接异常的装置,如图12所示,包括:第一检测模块01、第一获取模块02、第一更新模块03、第一连接模块04、第一判断模块05、第二检测模块06、第一通知模块07和第一设置模块08;
第一检测模块01,用于检测非接智能卡进场;
第一获取模块02,用于获取与非接智能卡对应的NFC标签;
第一更新模块03,用于将卡对象更新为NFC标签;
第一连接模块04,用于当第一更新模块03将卡对象更新为NFC标签后,和非接智能卡建立连接;
第一连接模块04,具体用于当第一更新模块03将卡对象更新为NFC标签后,调用系统的连接接口和非接智能卡建立连接;
第一判断模块05,用于判断第一连接模块04是否和非接智能卡连接成功;
第一判断模块05,具体用于判断是否获取到来自系统的建立连接异常,如果是,则判定连接失败;否则,判定连接成功。
第二检测模块06,用于当第一判断模块05判定为是后,检测和非接智能卡的连接状态;以及当自身检测出连接状态为有效时,继续检测和非接智能卡的连接状态;
第二检测模块06具体用于当第一判断模块05判定为是后,以及当自身检测出连接状态为有效时,调用系统的已连接接口获取来自系统的和非接智能卡的连接状态标志,根据连接状态标志检测和非接智能卡的连接状态。
第一通知模块07,用于当第一判断模块05判定为否后,通知用户非接智能卡连接异常;以及当第二检测模块06检测出连接状态为无效时,通知用户非接智能卡连接异常;
第一设置模块08,用于当第一判断模块05判定为否后,将卡对象置为无卡状态;以及当第二检测模块06检测出连接状态为无效时,将卡对象置为无卡状态。
本实施例中,在图11提供的装置的基础上,还可以包括:第二获取模块、第二判断模块和第一通讯模块;
第二获取模块,用于获取用户请求;
第二判断模块,用于当第二获取模块获取到用户请求后,根据卡对象判断非接智能卡是否处于NFC通讯场中;
第二判断模块具体用于判断卡对象是否为无卡状态,当判断出卡对象不为无卡状态后,则判断出非接智能卡处于NFC通讯场中。
第一通讯模块,用于当第二判断模块判定为是后,根据用户请求与非接智能卡进行通讯。
本实施例中,装置在包括:第一检测模块01、第一获取模块02、第一更新模块03、第一连接模块04、第一判断模块05、第二检测模块06、第一通知模块07、第一设置模块08、第二获取模块、第二判断模块和第一通讯模块的基础上还可以包括:第三检测模块、第二设置模块、第一复位模块和第一断开模块;相应地,
第三检测模块,用于当第一判断模块05判定为是后,第二检测模块06检测和非接智能卡的连接状态之前,检测通讯标志是否被置位;
第二检测模块06,具体用于当第三检测模块检测出通讯标志被置位后,检测和非接智能卡的连接状态;
第一断开模块,用于当第三检测模块检测出通讯标志没有被置位后,断开和非接智能卡的连接;
第一断开模块,具体用于当第三检测模块检测出通讯标志没有被置位后,调用系统的断开连接接口,断开和非接智能卡的连接。
第一连接模块04,还用于当第一断开模块断开和非接智能卡的连接后,和非接智能卡建立连接;
第二设置模块,用于当第二判断模块判定为是后,第一通讯模块根据用户请求与非接智能卡进行通讯之前,置位通讯标志;
第一复位模块,还用于当第一连接模块04和非接智能卡建立连接之前或第一断开模块断开和非接智能卡的连接之后,复位通讯标志。
本实施例中,装置在包括:第一检测模块01、第一获取模块02、第一更新模块03、第一连接模块04、第一判断模块05、第二检测模块06、第一通知模块07、第一设置模块08、第二获取模块、第二判断模块和第一通讯模块的基础上还可以包括:第三设置模块、第四检测模块、第一接收模块、第一停止模块、第二断开模块和第二复位模块;相应地:
第三设置模块,用于当第二判断模块判定为是后,第一通讯模块根据用户请求与非接智能卡进行通讯之前,置位通讯标志;
第二检测模块06,或者用于当第三设置模块置位通讯标志后,检测和非接智能卡的连接状态,当连接状态为有效时,则继续检测和非接智能卡的连接状态;
第四检测模块,用于当第一判断模块05判定为是后,检测通讯标志是否被置位;
第一停止模块,用于当第一接收模块接收到来自非接智能卡的通讯应答后,停止检测和非接智能卡的连接状态;
第二断开模块,用于当第一停止模块停止检测和非接智能卡的连接状态后,断开和非接智能卡的连接;以及当第四检测模块检测通讯标志没有被置位后,断开和非接智能卡的连接;
第二断开模块,具体用于当第一停止模块停止检测和非接智能卡的连接状态后,调用系统的断开连接接口,断开和非接智能卡的连接;以及当第四检测模块检测通讯标志没有被置位后,调用系统的断开连接接口,断开和非接智能卡的连接。
第一连接模块04,还用于当第二断开模块断开和非接智能卡的连接后,和非接智能卡建立连接;以及当第四检测模块检测出通讯标志被置位后,当第二断开模块断开和非接智能卡的连接后,和非接智能卡建立连接;
第二复位模块,还用于当第一连接模块04和非接智能卡建立连接之前或第二断开模块断开和非接智能卡的连接之后,复位通讯标志。
本实施例中,在图11提供的装置的基础上,还可以包括:第一注册模块;
第一注册模块,用于将NFC标签消息类型注册到系统;第一检测模块01,具体用于检测与NFC标签消息类型对应的非接智能卡进场。
其中,第一注册模块包括第一注册单元和/或第二注册单元;
第一注册单元,用于注册广播,并设置广播的过滤器,在广播的过滤器中将NFC标签消失类型注册到系统;
第二注册单元,用于注册NFC标签前台发布系统,NFC标签消息类型注册到系统中。
本实施例中,在图11提供的装置的基础上,还包括第一初始化模块;
第一初始化模块,用于当第一连接模块04和非接智能卡建立连接之前,初始化句柄对象;相应地,第一通知模块07,具体用于当第一判断模块05判定为否后,使用句柄对象调用系统的创建消息接口创建当前异常消息,将当前异常消息设置为连接异常消息,调用系统的发送消息接口向句柄对象发送连接异常消息,根据句柄对象通知用户非接智能卡连接异常。
本实施例中,当装置中包括第一断开模块时,还可以包括:第三判断模块;相应地,第三判断模块,用于当第一断开模块断开和非接智能卡的连接后,判断是否成功和非接智能卡断开连接;第一通知模块07,还用于当第三判断模块判定为否后,通知用户非接智能卡连接异常;第一设置模块08,还用于当第三判断模块判定为否后,将卡对象置为无卡状态。
本实施例中,当装置中包括第二断开模块时,还可以包括:第四判断模块;相应地,第四判断模块,用于当第二断开模块断开和非接智能卡的连接后,判断是否成功和非接智能卡断开连接;第一通知模块07,还用于当第四判断模块判定为否后,通知用户非接智能卡连接异常;第一设置模块08,还用于当第四判断模块判定为否后,将卡对象置为无卡状态。
本实施例提供了一种检测移动终端与非接智能卡连接异常的装置,通过这种检测移动终端与非接智能卡连接异常的装置,可以让用户快速和准确的获知移动终端与非接智能卡连接异常,从而完善了移动终端的性能并且提升了用户体验。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (26)
1.一种检测移动终端与非接智能卡连接异常的方法,其特征在于,包括:若移动终端检测到非接智能卡进场时,执行步骤s1;
步骤s1:所述移动终端获取与所述非接智能卡对应的NFC标签,将卡对象更新为所述NFC标签;
步骤s2:所述移动终端和非接智能卡建立连接,判断是否连接成功,如果是,则执行步骤s3;否则,执行步骤s4;
步骤s3:所述移动终端检测和所述非接智能卡的连接状态,当连接状态为有效时,则返回步骤s3;当连接状态为无效时,执行步骤s4;
步骤s4:所述移动终端通知用户非接智能卡连接异常,将所述卡对象置为无卡状态;
所述步骤s3具体为:所述移动终端从自身的系统中获取连接状态标志,根据所述连接状态标志检测和所述非接智能卡的连接状态,当所述连接状态标志为有效时,返回步骤s3;当所述连接状态标志为无效时,执行步骤s4。
2.根据权利要求1所述的方法,其特征在于,还包括:若移动终端获取到用户请求时,执行步骤r1;
步骤r1:所述移动终端根据卡对象判断非接智能卡是否处于NFC通讯场中,当判断出为是后,所述移动终端根据所述用户请求与所述非接智能卡进行通讯。
3.根据权利要求2所述的方法,其特征在于,所述移动终端根据卡对象判断非接智能卡是否处于NFC通讯场中,具体为:所述移动终端判断所述卡对象是否为无卡状态,当判断出所述卡对象不为无卡状态后,则判断出所述非接智能卡处于NFC通讯场中。
4.根据权利要求2所述的方法,其特征在于,当所述移动终端判断和非接智能卡连接成功后,执行步骤s3之前,还包括:检测通讯标志是否被置位,如果是,则执行步骤s3;否则,断开和非接智能卡的连接,返回步骤s2;
所述当移动终端检测出非接智能卡处于NFC通讯场中后,所述移动终端根据所述用户请求与所述非接智能卡进行通讯前,还包括:置位通讯标志;
所述移动终端和所述非接智能卡建立连接之前或者所述移动终端断开和所述非接智能卡的连接之后,还包括复位通讯标志。
5.根据权利要求2所述的方法,其特征在于,所述步骤s3还可以替换为:检测通讯标志是否被置位,如果是,则当所述移动终端断开和所述非接智能卡的连接后,返回步骤s2;否则,断开和所述非接智能卡的连接,返回步骤s2;
所述当移动终端检测出非接智能卡处于NFC通讯场中后,所述移动终端与所述非接智能卡进行通讯前,还包括:置位通讯标志;
所述置位通讯标志后,还包括:检测和所述非接智能卡的连接状态,当连接状态为有效时,则继续检测和所述非接智能卡的连接状态;当连接状态为无效时,执行步骤s4;
当所述移动终端接收到来自所述非接智能卡的通讯应答后,停止检测和所述非接智能卡的连接状态,断开和所述非接智能卡的连接,执行步骤s2;
所述移动终端和所述非接智能卡建立连接之前或者所述移动终端断开和所述非接智能卡的连接之后,还包括复位通讯标志。
6.根据权利要求1所述的方法,其特征在于,所述步骤s1之前还包括:所述移动终端的应用程序将NFC标签消息类型注册到系统;
所述移动终端检测到非接智能卡进场具体为:所述移动终端的应用程序检测到与所述NFC标签消息类型对应的非接智能卡进场;
所述步骤s1具体为:所述移动终端的应用程序获取与所述非接智能卡对应的NFC标签,将卡对象更新为所述NFC标签。
7.根据权利要求6所述的方法,其特征在于,所述移动终端的应用程序将NFC标签消息类型注册到系统具体包括:步骤a1和/或步骤a2;
所述步骤a1具体为:所述移动终端的应用程序注册广播,并设置广播的过滤器,在广播的过滤器中将所述NFC标签消息类型注册到所述系统;
所述步骤a2具体为:应用程序注册NFC标签前台发布系统,将所述NFC标签消息类型注册到所述系统中。
8.根据权利要求1所述的方法,其特征在于,所述步骤s2具体为:所述移动终端的应用程序调用系统的连接接口和所述非接智能卡建立连接,判断是否获取到来自所述系统的建立连接异常,如果是,则判定连接失败,执行步骤s4;否则,判定连接成功,执行步骤s3。
9.根据权利要求1所述的方法,其特征在于,所述移动终端从自身的系统中获取连接状态标志,具体为:所述移动终端的应用程序调用系统的已连接接口获取来自所述系统的和所述非接智能卡的连接状态标志。
10.根据权利要求1所述的方法,其特征在于,所述步骤s2之前还包括:所述移动终端的应用程序初始化句柄对象;
所述步骤s4具体为:所述移动终端的应用程序使用所述句柄对象调用系统的创建消息接口创建当前异常消息,将所述当前异常消息设置为连接异常消息,调用系统的发送消息接口向所述句柄对象发送所述连接异常消息,根据所述句柄对象通知用户非接智能卡连接异常,将卡对象置为无卡状态。
11.根据权利要求4或5所述的方法,其特征在于,所述断开和所述非接智能卡的连接,具体为:所述移动终端的应用程序调用系统的断开连接接口,断开和所述非接智能卡的连接。
12.根据权利要求4或5所述的方法,其特征在于,所述断开和所述非接智能卡的连接,之后还包括:所述移动终端判断是否成功和所述非接智能卡断开连接,如果是,返回步骤s2;否则,执行步骤s4。
13.一种检测移动终端与非接智能卡连接异常的装置,其特征在于,包括:第一检测模块、第一获取模块、第一更新模块、第一连接模块、第一判断模块、第二检测模块、第一通知模块和第一设置模块;
所述第一检测模块,用于检测非接智能卡进场;
所述第一获取模块,用于获取与所述非接智能卡对应的NFC标签;
所述第一更新模块,用于将卡对象更新为所述NFC标签;
所述第一连接模块,用于当所述第一更新模块将卡对象更新为所述NFC标签后,和非接智能卡建立连接;
所述第一判断模块,用于判断所述第一连接模块是否和所述非接智能卡连接成功;
所述第二检测模块,用于当所述第一判断模块判定为是后,从所述移动终端的系统中获取连接状态标志,根据所述连接状态标志检测和所述非接智能卡的连接状态;以及当自身检测出连接状态为有效时,继续从所述移动终端的系统中获取连接状态标志,根据所述连接状态标志检测和所述非接智能卡的连接状态;
所述第一通知模块,用于当所述第一判断模块判定为否后,通知用户非接智能卡连接异常;以及当所述第二检测模块检测出连接状态为无效时,通知用户非接智能卡连接异常;
所述第一设置模块,用于当所述第一判断模块判定为否后,将卡对象置为无卡状态;以及当所述第二检测模块检测出连接状态为无效时,将卡对象置为无卡状态。
14.根据权利要求13所述的装置,其特征在于,还包括:第二获取模块、第二判断模块和第一通讯模块;
所述第二获取模块,用于获取用户请求;
所述第二判断模块,用于当所述第二获取模块获取到用户请求后,根据卡对象判断非接智能卡是否处于NFC通讯场中;
所述第一通讯模块,用于当所述第二判断模块判定为是后,根据所述用户请求与所述非接智能卡进行通讯。
15.根据权利要求14所述的装置,其特征在于,所述第二判断模块具体用于判断所述卡对象是否为无卡状态,当判断出所述卡对象不为无卡状态后,则判断出所述非接智能卡处于NFC通讯场中。
16.根据权利要求14所述的装置,其特征在于,还包括:第三检测模块、第二设置模块、第一复位模块和第一断开模块;
所述第三检测模块,用于当所述第一判断模块判定为是后,所述第二检测模块检测和所述非接智能卡的连接状态之前,检测通讯标志是否被置位;
所述第二检测模块,具体用于当所述第三检测模块检测出通讯标志被置位后,检测和所述非接智能卡的连接状态;
所述第一断开模块,用于当所述第三检测模块检测出通讯标志没有被置位后,断开和非接智能卡的连接;
所述第一连接模块,还用于当所述第一断开模块断开和非接智能卡的连接后,和非接智能卡建立连接;
所述第二设置模块,用于当所述第二判断模块判定为是后,所述第一通讯模块根据所述用户请求与所述非接智能卡进行通讯之前,置位通讯标志;
所述第一复位模块,还用于当所述第一连接模块和所述非接智能卡建立连接之前或所述第一断开模块断开和所述非接智能卡的连接之后,复位通讯标志。
17.根据权利要求14所述的装置,其特征在于,还包括:第三设置模块、第四检测模块、第一接收模块、第一停止模块、第二断开模块和第二复位模块;
所述第三设置模块,用于当所述第二判断模块判定为是后,所述第一通讯模块根据所述用户请求与所述非接智能卡进行通讯之前,置位通讯标志;
所述第二检测模块,或者用于当所述第三设置模块置位通讯标志后,检测和所述非接智能卡的连接状态,当连接状态为有效时,则继续检测和所述非接智能卡的连接状态;
所述第四检测模块,用于当所述第一判断模块判定为是后,检测通讯标志是否被置位;
所述第一停止模块,用于当所述第一接收模块接收到来自所述非接智能卡的通讯应答后,停止检测和所述非接智能卡的连接状态;
所述第二断开模块,用于当所述第一停止模块停止检测和所述非接智能卡的连接状态后,断开和所述非接智能卡的连接;以及当所述第四检测模块检测通讯标志没有被置位后,断开和所述非接智能卡的连接;
所述第一连接模块,还用于当所述第二断开模块断开和非接智能卡的连接后,和非接智能卡建立连接;以及当所述第四检测模块检测出通讯标志被置位后,当所述第二断开模块断开和非接智能卡的连接后,和非接智能卡建立连接;
所述第二复位模块,还用于当所述第一连接模块和所述非接智能卡建立连接之前或所述第二断开模块断开和所述非接智能卡的连接之后,复位通讯标志。
18.根据权利要求13所述的装置,其特征在于,还包括:第一注册模块;
所述第一注册模块,用于将NFC标签消息类型注册到系统;所述第一检测模块,具体用于检测与所述NFC标签消息类型对应的非接智能卡进场。
19.根据权利要求18所述的装置,其特征在于,所述第一注册模块包括第一注册单元和/或第二注册单元;
所述第一注册单元,用于注册广播,并设置广播的过滤器,在广播的过滤器中将所述NFC标签消失类型注册到所述系统;
所述第二注册单元,用于注册NFC标签前台发布系统,所述NFC标签消息类型注册到所述系统中。
20.根据权利要求13所述的装置,其特征在于,所述第一连接模块,具体用于当所述第一更新模块将卡对象更新为所述NFC标签后,调用系统的连接接口和所述非接智能卡建立连接;
所述第一判断模块,具体用于判断是否获取到来自所述系统的建立连接异常,如果是,则判定连接失败;否则,判定连接成功。
21.根据权利要求13所述的装置,其特征在于,所述第二检测模块具体用于当所述第一判断模块判定为是后,以及当自身检测出连接状态为有效时,调用系统的已连接接口获取来自所述系统的和所述非接智能卡的连接状态标志,根据所述连接状态标志检测和所述非接智能卡的连接状态。
22.根据权利要求13所述的装置,其特征在于,还包括第一初始化模块;
所述第一初始化模块,用于当所述第一连接模块和非接智能卡建立连接之前,初始化句柄对象;
所述第一通知模块,具体用于当所述第一判断模块判定为否后,使用所述句柄对象调用系统的创建消息接口创建当前异常消息,将所述当前异常消息设置为连接异常消息,调用系统的发送消息接口向所述句柄对象发送所述连接异常消息,根据所述句柄对象通知用户非接智能卡连接异常。
23.根据权利要求16所述的装置,其特征在于,所述第一断开模块,具体用于当所述第三检测模块检测出通讯标志没有被置位后,调用系统的断开连接接口,断开和所述非接智能卡的连接。
24.根据权利要求16所述的装置,其特征在于,还包括第三判断模块;
所述第三判断模块,用于当所述第一断开模块断开和所述非接智能卡的连接后,判断是否成功和所述非接智能卡断开连接;
所述第一通知模块,还用于当所述第三判断模块判定为否后,通知用户非接智能卡连接异常;
所述第一设置模块,还用于当所述第三判断模块判定为否后,将卡对象置为无卡状态。
25.根据权利要求17所述的装置,其特征在于,所述第二断开模块,具体用于当所述第一停止模块停止检测和所述非接智能卡的连接状态后,调用系统的断开连接接口,断开和所述非接智能卡的连接;以及当所述第四检测模块检测通讯标志没有被置位后,调用系统的断开连接接口,断开和所述非接智能卡的连接。
26.根据权利要求17所述的装置,其特征在于,还包括第四判断模块;
所述第四判断模块,用于当所述第二断开模块断开和所述非接智能卡的连接后,判断是否成功和所述非接智能卡断开连接;
所述第一通知模块,还用于当所述第四判断模块判定为否后,通知用户非接智能卡连接异常;
所述第一设置模块,还用于当所述第四判断模块判定为否后,将卡对象置为无卡状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610644622.7A CN106255039B (zh) | 2016-08-08 | 2016-08-08 | 一种检测移动终端与非接智能卡连接异常的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610644622.7A CN106255039B (zh) | 2016-08-08 | 2016-08-08 | 一种检测移动终端与非接智能卡连接异常的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106255039A CN106255039A (zh) | 2016-12-21 |
CN106255039B true CN106255039B (zh) | 2018-11-20 |
Family
ID=58078284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610644622.7A Active CN106255039B (zh) | 2016-08-08 | 2016-08-08 | 一种检测移动终端与非接智能卡连接异常的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106255039B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111212421B (zh) * | 2020-01-03 | 2022-07-01 | 飞天诚信科技股份有限公司 | 卡片自动连接方法、电子设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136078A (zh) * | 2007-10-25 | 2008-03-05 | 上海复旦微电子股份有限公司 | Sim卡连接非接触前端芯片实现移动非接触的电路 |
CN101459541A (zh) * | 2008-12-31 | 2009-06-17 | 华为技术有限公司 | 一种检测链路中断的方法、设备与系统 |
CN102722687A (zh) * | 2012-05-30 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种检测非接触式cpu卡片离开射频场的方法 |
CN104331719A (zh) * | 2014-10-24 | 2015-02-04 | 上海微肯网络科技有限公司 | 非接触式ic卡及其数据处理方法 |
CN204143449U (zh) * | 2014-10-21 | 2015-02-04 | 仲光玥 | 一种非接触式金融ic卡读卡器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6359915B2 (ja) * | 2014-08-19 | 2018-07-18 | ラピスセミコンダクタ株式会社 | 半導体装置、電池監視システム、及び半導体装置のアドレス設定方法 |
-
2016
- 2016-08-08 CN CN201610644622.7A patent/CN106255039B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136078A (zh) * | 2007-10-25 | 2008-03-05 | 上海复旦微电子股份有限公司 | Sim卡连接非接触前端芯片实现移动非接触的电路 |
CN101459541A (zh) * | 2008-12-31 | 2009-06-17 | 华为技术有限公司 | 一种检测链路中断的方法、设备与系统 |
CN102722687A (zh) * | 2012-05-30 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种检测非接触式cpu卡片离开射频场的方法 |
CN204143449U (zh) * | 2014-10-21 | 2015-02-04 | 仲光玥 | 一种非接触式金融ic卡读卡器 |
CN104331719A (zh) * | 2014-10-24 | 2015-02-04 | 上海微肯网络科技有限公司 | 非接触式ic卡及其数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106255039A (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108566303B (zh) | 网络通信功能异常的处理方法、应用处理器及移动终端 | |
US6697617B2 (en) | Notification of a low-battery and maintaining communication in a wireless network | |
ES2626406T3 (es) | Acceso remoto de un sistema de control de ascensor con múltiples subsistemas | |
CN108377482A (zh) | 一种终端连接蓝牙设备的方法、装置、系统及设备 | |
CN106686056A (zh) | 一种安卓客户端通信装置及与服务器进行连接通信的方法 | |
CN106255039B (zh) | 一种检测移动终端与非接智能卡连接异常的方法及装置 | |
CN105429814A (zh) | 利用多板卡保护bfd的方法和设备 | |
CN103441870A (zh) | 一种智能实时无缝切换的双机备份方法 | |
CN102932536B (zh) | 通信处理方法及装置 | |
CN105578449A (zh) | 一种虚拟sim卡更换方法及装置 | |
CN106941671A (zh) | 基于双卡双系统的通信事件处理方法及移动终端 | |
CN107361757A (zh) | 一种智能设备的心率监测装置 | |
CN106211355A (zh) | 一种控制数据交互的设备、系统及其工作方法 | |
CN105392110B (zh) | 移动终端的蓝牙连接提醒方法和系统 | |
CN105338562B (zh) | 服务状态上报异常引起卡顿的恢复方法、装置及移动终端 | |
CN110087202B (zh) | 工业级4g全网通短信及电话振铃报警终端及其报警方法 | |
CN105357703B (zh) | 网络通信功能异常的处理方法、应用处理器及移动终端 | |
CN108135010A (zh) | 一种物联网卡的通信数据传输方法、装置及系统 | |
CN108564773A (zh) | 一种防误报蓝牙防丢器及其准确定位的报警方法 | |
CN103379026A (zh) | 用于移动终端的即时通信方法和即时通信系统 | |
CN106165459B (zh) | 监视系统 | |
CN105357393B (zh) | 网络通信功能异常的处理方法、调制解调器及移动终端 | |
CN205375726U (zh) | 基于无线连接的双芯片防丢系统 | |
CN208887833U (zh) | 一种基于nb通讯的水压监测设备及系统 | |
CN102957794A (zh) | 快捷键的控制方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |