一种蓝牙连接资源的管理方法和装置转让专利

申请号 : CN201610471852.8

文献号 : CN107548017B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 翟岳辉

申请人 : 国民技术股份有限公司

摘要 :

本发明公开了一种蓝牙连接资源的管理方法和装置,其中,所述方法包括:通过系统信息传递机制获知到蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况;确定到蓝牙连接资源没有被占用时,发起蓝牙连接寻呼。并且,在所述通过系统信息传递机制获知到蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况之前,还包括在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用。本发明利用系统信息传递机制,通过预先设定特定的信息类型,实现不同应用之间协商使用同一蓝牙连接资源;特别是实现蓝牙连接资源一定程度的共享。

权利要求 :

1.一种同一终端中多个APP之间的蓝牙连接资源的管理方法,其特征在于,所述方法包括:在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用;

通过系统信息传递机制获知到蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况;

在通知用户蓝牙连接资源被占用情况时,询问用户是否选择强制释放所述蓝牙连接资源;

当收到用户选择强制释放所述蓝牙连接资源的输入时,通过系统信息传递机制向所述蓝牙连接资源的占用者发送释放蓝牙连接资源通知;

确定到蓝牙连接资源没有被占用时,发起蓝牙连接寻呼;

其中,所述系统信息传递机制为安卓系统的广播机制;

所述通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用包括:发送第一预设广播,所述第一预设广播为预先注册的无序广播,意图为使接收者判断自身是否占用所述蓝牙连接资源后作出响应;

所述通过系统信息传递机制向所述蓝牙连接资源的占用者发送释放蓝牙连接资源通知包括:发送第二预设广播,所述第二预设广播为预先注册的无序广播,意图为使接收者断开所述蓝牙连接,释放所述蓝牙连接资源。

2.根据权利要求1所述的管理方法,其特征在于,所述方法还包括:当收到用户选择不强制释放所述蓝牙连接资源的输入时,停止建立蓝牙连接。

3.根据权利要求2所述的管理方法,其特征在于,所述方法还包括:当接收到所述第一预设广播后,判断自身是否占用所述蓝牙连接资源;

当自身占用所述蓝牙连接资源时,发送第三预设广播,所述第三预设广播为预先注册的无序广播,意图为通知接收者所述蓝牙连接资源被占用情况;当接收到所述第二预设广播后,断开所述蓝牙连接,释放所述蓝牙连接资源。

4.根据权利要求3所述的管理方法,其特征在于,所述第一预设广播、第二预设广播和第三预设广播的广播名称中包含所述蓝牙连接的特征信息。

5.根据权利要求1所述的管理方法,其特征在于,所述第一预设广播和第二预设广播中携带有发送者信息。

6.根据权利要求3所述的管理方法,其特征在于,所述第三预设广播中携带有发送者信息、接收者信息和蓝牙连接资源占用情况。

7.一种蓝牙连接资源的管理装置,该装置包括:通知模块和连接模块;其中,询问模块,用于在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用;

通知模块,用于当通过系统信息传递机制获知所述蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用的情况;

释放询问模块,用于在通知用户蓝牙连接资源被占用情况时,询问用户是否选择强制释放所述蓝牙连接资源;

释放通知模块,用于当收到用户选择强制释放所述蓝牙连接资源的输入时,通过系统信息传递机制向所述蓝牙连接资源占用者发送释放蓝牙连接资源通知;

连接模块,用于当确定所述蓝牙连接资源没有被占用时,发起蓝牙连接寻呼;

其中,所述系统信息传递机制为安卓系统的广播机制;

所述通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用包括:发送第一预设广播,所述第一预设广播为预先注册的无序广播,意图为使接收者判断自身是否占用所述蓝牙连接资源后作出响应;

所述通过系统信息传递机制向所述蓝牙连接资源占用者发送释放蓝牙连接资源通知包括:发送第二预设广播,所述第二预设广播为预先注册的无序广播,意图为使接收者断开所述蓝牙连接,释放所述蓝牙连接资源。

8.根据权利要求7所述的管理装置,其特征在于,所述装置还包括:停止连接模块,用于当收到用户选择不强制释放所述蓝牙连接资源的输入时,停止建立蓝牙连接。

说明书 :

一种蓝牙连接资源的管理方法和装置

技术领域

[0001] 本发明涉及无线通信技术领域,尤其涉及一种蓝牙连接资源的管理方法和装置。

背景技术

[0002] 互联网和无线通信的迅速发展,使人们对各种数据和移动服务的需求快速增长。蓝牙技术作为一个全球开放性无线通信标准,通过把各种语言和数据设备用无线链路连接起来,使人们能够随时随地实现个人区域内语言和数据的交换与传输,随着蓝牙技术的发展和完善,蓝牙连接现已逐渐成为电子设备间常常选用的高速安全的无线数据传输通道。
[0003] 当前蓝牙技术的应用领域越来越广泛,耳机、键盘、打印机等外设,加入蓝牙模块,便可实现无线化,提高外设的便携性;而电视、空调、音响等家用电器中加入蓝牙模块,便可与手机、平板电脑等智能控制设备实现信息传输,为家电的智能化提供基础;许多智能手环、智能手表等智能可穿戴设备也选用蓝牙连接作为自身与智能控制终端的通信通道。蓝牙技术之所以备受青睐,除了蓝牙连接的传输速率高之外,蓝牙设备间建立蓝牙连接时需要进行配对及身份验证,使得蓝牙连接的安全性也相对较高。
[0004] 蓝牙通信属于一对一通信方式,建立蓝牙连接的两个设备分为主设备和从设备,主设备若要连接从设备,需要知晓从设备的配对密码等参数,并通过蓝牙广播寻呼从设备,由从设备接收寻呼,验证配对参数后,响应主设备的寻呼,进而建立蓝牙连接。
[0005] 许多简单的蓝牙外设,例如蓝牙耳机,在出厂时默认设为从设备模式,配对密码默认为“0000”或“1111”,以方便用户快速连接。显然,这种做法存在许多安全隐患。因此,越来越多的蓝牙设备,特别是对数据安全性要求较高的蓝牙设备,会采取更为安全的设备配对策略建立蓝牙连接。为方便用户,蓝牙设备厂商往往通过将这种配对策略集成在设备的SDK(用户开发工具包)中提供给用户,智能控制设备通过调用蓝牙设备SDK中相应的接口函数,就可完成与该蓝牙设备的连接建立。随着智能手机等智能移动终端的应用普及,许多蓝牙设备都会针对终端的操作系统定制APP(应用程序),APP集成蓝牙设备的SDK,通过调用蓝牙设备的SDK相应的接口函数,使得APP所在的终端与蓝牙设备建立蓝牙连接。这样,蓝牙配对参数可以任意设定,且封装在SDK或APP中,终端通过安装APP获得蓝牙配对参数,可增强蓝牙配对参数的保密性,提高蓝牙连接的安全性。
[0006] 通常终端与蓝牙设备建立的蓝牙连接,终端的操作系统视其为蓝牙连接资源,一个终端可以与多个蓝牙设备分别建立蓝牙连接,但一个终端与一个特定的蓝牙设备之间只能建立一个蓝牙连接,换句话说,一个终端的操作系统中可以存在多个蓝牙连接资源,每个蓝牙连接资源对应一个特定的蓝牙设备。而一个蓝牙连接资源通常被分配给发起该蓝牙连接的APP独占使用,在多数情况下,这样的方式可以满足要求。但是,对于蓝牙信用卡这样的蓝牙设备,终端中可能存在多个APP(例如:多家银行的APP)需要利用终端与该蓝牙设备(例如:蓝牙信用卡)之间的蓝牙连接传输数据,也就是说APP之间需要建立相互协商管理同一个蓝牙连接资源的协调机制,否则,该蓝牙设备(例如蓝牙信用卡)就只能被一个APP(最先发起蓝牙连接的银行APP)使用,而其他的APP(其他银行APP)就会出现无法发现该蓝牙设备(例如蓝牙信用卡)的问题。

发明内容

[0007] 本发明期望提供一种蓝牙连接资源的管理方法和装置,能使得APP相互协商管理同一个蓝牙连接资源。
[0008] 本发明实施例的技术方案是这样实现的:
[0009] 本发明实施例提供了一种蓝牙连接资源的管理方法,该方法包括:
[0010] 通过系统信息传递机制获知到蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况;
[0011] 确定到蓝牙连接资源没有被占用时,发起蓝牙连接寻呼。
[0012] 上述方案中,所述方法还包括:
[0013] 在所述通过系统信息传递机制获知到蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况之前,还包括:在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用。在通知用户蓝牙连接资源被占用情况时,询问用户是否选择强制释放所述蓝牙连接资源;
[0014] 当收到用户选择强制释放所述蓝牙连接资源的输入时,通过系统信息传递机制向所述蓝牙连接资源占用者发送释放蓝牙连接资源通知;
[0015] 当收到用户选择不强制释放所述蓝牙连接资源的输入时,停止建立蓝牙连接。
[0016] 上述方案中,所述系统信息传递机制为安卓系统的广播机制;
[0017] 所述通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用包括:
[0018] 发送第一预设广播,所述第一预设广播为预先注册的无序广播,意图为使接收者判断自身是否占用所述蓝牙连接资源后作出响应;
[0019] 所述通过系统信息传递机制向所述蓝牙连接资源占用者发送释放蓝牙连接资源通知包括:
[0020] 发送第二预设广播,所述第二预设广播为预先注册的无序广播,意图为使接收者断开所述蓝牙连接,释放所述蓝牙连接资源。
[0021] 上述方案中,所述方法还包括:
[0022] 当接收到所述第一预设广播后,判断自身是否占用所述蓝牙连接资源;
[0023] 当自身占用所述蓝牙连接资源时,发送第三预设广播,所述第三预设广播为预先注册的无序广播,意图为通知接收者所述蓝牙连接资源被占用情况。
[0024] 上述方案中,所述方法还包括:
[0025] 当接收到所述第二预设广播后,断开所述蓝牙连接,释放所述蓝牙连接资源。
[0026] 上述方案中,所述第一预设广播、第二预设广播和第三预设广播的广播名称中包含所述蓝牙连接的特征信息。
[0027] 上述方案中,所述第一预设广播和第二预设广播中携带有发送者信息。
[0028] 上述方案中,所述第三预设广播中携带有发送者信息、接收者信息和蓝牙连接资源占用情况。
[0029] 本发明实施例还提供了一种蓝牙连接资源的管理装置,该装置包括:通知模块和连接模块;其中,
[0030] 通知模块,用于当通过所述系统信息传递机制获知所述蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况;
[0031] 连接模块,用于当确定所述蓝牙连接资源没有被占用时,发起蓝牙连接寻呼。
[0032] 上述方案中,所述装置还包括:
[0033] 询问模块,用于在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用;
[0034] 释放询问模块,用于在通知用户蓝牙连接资源被占用情况时,询问用户是否选择强制释放所述蓝牙连接资源;
[0035] 释放通知模块,用于当收到用户选择强制释放所述蓝牙连接资源的输入时,通过系统信息传递机制向所述蓝牙连接资源占用者发送释放蓝牙连接资源通知;
[0036] 停止连接模块,用于当收到用户选择不强制释放所述蓝牙连接资源的输入时,停止建立蓝牙连接。
[0037] 本发明利用系统信息传递机制,通过预先设定特定的信息类型,实现不同应用之间协商使用同一蓝牙连接资源;特别是利用安卓系统的广播机制,通过预先设定特定类型的广播,使得APP之间可了解目标蓝牙连接资源的使用情况,进而协商使用同一蓝牙连接资源,实现蓝牙连接资源一定程度的共享。

附图说明

[0038] 图1为本发明实施例提供的蓝牙连接资源的管理方法的实现流程示意图;
[0039] 图2为本发明实施例提供的蓝牙连接资源的管理装置的组成结构示意图;
[0040] 图3为本发明实施例1中蓝牙连接资源冲突情况示意图;
[0041] 图4-图5为本发明实施例1中两个APP之间协商蓝牙连接资源的过程示意图。

具体实施方式

[0042] 为了更清楚地说明本发明实施例和技术方案,下面将结合附图及实施例对本发明的技术方案进行更详细的说明,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 在本发明实施例中,智能终端的操作系统为安卓(Android)系统,为便于叙述,下文中的“系统”,如无特别说明,均指安卓系统。由于系统的沙盒机制,系统中的APP之间无法直接交换信息,即第一APP无法直接访问第二APP的数据,同时第一APP也无法直接推送数据给第二APP。但是,在Android系统中存在广播机制。具体来说,Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下:
[0044] 1.同一APP内部的同一组件内的消息通信(单个或多个线程之间);
[0045] 2.同一APP内部的不同组件之间的消息通信(单个进程);
[0046] 3.同一APP具有多个进程的不同组件之间的消息通信;
[0047] 4.不同APP之间的组件之间消息通信;
[0048] 5.Android系统在特定情况下与App之间的消息通信。
[0049] 从实现原理看上,Android中的广播使用了观察者模式,基于消息的发布/订阅事件模型。因此,从实现的角度来看,Android中的广播将广播的发送者和接受者极大程度上解耦,使得系统能够方便集成,更易扩展。具体实现流程要点粗略概括如下:
[0050] 1.广播接收者BroadcastReceiver通过Binder机制向AMS(Activity Manager Service)进行注册;
[0051] 2.广播发送者通过binder机制向AMS发送广播;
[0052] 3.AMS查找符合相应条件(IntentFilter/Permission等)的BroadcastReceiver,将广播发送到BroadcastReceiver(一般情况下是Activity)相应的消息循环队列中;
[0053] 4.消息循环执行拿到此广播,回调BroadcastReceiver中的onReceive()方法。
[0054] 对于不同的广播类型,以及不同的BroadcastReceiver注册方式,具体实现上会有不同。但总体流程大致如上。
[0055] 由此看来,广播发送者和广播接收者分别属于观察者模式中的消息发布和订阅两端,AMS属于中间的处理中心。广播发送者和广播接收者的执行是异步的,发出去的广播不会关心有无接收者接收,也不确定接收者到底是何时才能接收到,耦合机制十分松散,尤其适合涉及不同进程间的消息通信需求。
[0056] 对于广播机制,经常说发送和接收“广播”,表面上看广播作为Android广播机制中的实体,实际上这一实体本身是并不是以所谓的“广播”对象存在的,而是以“意图(Intent)”去表示。定义广播的定义过程,实际就是相应广播“意图”的定义过程,然后通过广播发送者将此“意图”发送出去。被相应的BroadcastReceiver接收后将会回调onReceive()函数。
[0057] 自定义广播接收器需要继承基类BroadcastReceivre,并实现抽象方法onReceive(context,intent)方法。广播接收器接收到相应广播后,会自动回到onReceive(..)方法。一般情况下,根据实际业务需求,onReceive()方法中都会涉及到与其他组件之间的交互,如发送Notification、启动service等。
[0058] BroadcastReceiver总体上可以分为两种注册类型:静态注册和动态注册。静态注册指直接在AndroidManifest.xml文件中进行注册。而动态注册时,无须在AndroidManifest中注册组件。直接在代码中通过调用Context的registerReceiver函数,可以在程序中动态注册BroadcastReceiver。
[0059] 在本发明的一个实施例中,为了使得APP之间相互协商管理同一个蓝牙连接资源,正是借助于系统的广播机制进行信息交换。
[0060] 图1为本发明实施例提供的蓝牙连接资源的管理方法的实现流程示意图,如图1所示,该方法包括:
[0061] 步骤101,在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用;
[0062] 具体的,由于本实施例中安卓系统提供的系统信息传递机制为广播机制,因此,本实施例中,APP1在向目标蓝牙设备发起蓝牙连接时,是通过发送预先注册于安卓系统中的特定广播的方式询问是否有其它APP占用了该蓝牙设备对应的蓝牙连接资源;
[0063] 这里,所谓特定广播即为第一预设广播,所述第一预设广播为预先注册的无序广播,意图为使接收到该广播的APP判断自身是否占用所述蓝牙连接资源,如果有APP,例如APP2占用了目标蓝牙连接资源,则APP2将同样通过广播机制作出响应;具体的,APP2发送第三预设广播,所述第三预设广播为预先注册的无序广播,意图为通知接收者所述蓝牙连接资源被占用情况;进一步的,第一预设广播中携带有发送者即APP1的信息,包括APP1的ID和名称;而第三预设广播中不但携带有发送者即APP2的信息(ID和名称),还携带有接收者即APP1的信息(ID和名称)以及APP2占用蓝牙连接资源的情况。
[0064] 步骤102,当通过所述系统信息传递机制获知所述蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况;
[0065] APP1当通过所述系统信息传递机制获知所述蓝牙连接资源被占用时,即APP1收到APP2发送的所述第三预设广播时,APP1通过解析该第三预设广播,向用户通知蓝牙连接资源被占用情况,例如,向用户弹出信息显示栏,显示APP2已连接蓝牙设备,如需继续使用相关服务,需要先断开APP2的蓝牙连接等信息;此时,用户可以自行关闭APP2,从而手动释放蓝牙连接资源;
[0066] 进一步的,APP1在通知用户蓝牙连接资源被占用情况时,还可以询问用户是否选择强制释放所述蓝牙连接资源;例如,向用户弹出选择对话框,让用户选择是否断开APP2的蓝牙连接等;
[0067] 当APP1收到用户选择强制释放所述蓝牙连接资源的输入时,APP1通过系统信息传递机制向所述蓝牙连接资源占用者发送释放蓝牙连接资源通知;具体的,APP1发送第二预设广播;所述第二预设广播为预先注册的无序广播,意图为使接收者断开所述蓝牙连接,释放所述蓝牙连接资源;进一步的,第二预设广播中携带有发送者即APP1的信息,包括APP1的ID和名称;当APP2接收到所述第二预设广播后,APP2断开所述蓝牙连接,释放所述蓝牙连接资源。
[0068] 而当APP1收到用户选择不强制释放所述蓝牙连接资源的输入时,APP1停止建立蓝牙连接。
[0069] 步骤103,当确定所述蓝牙连接资源没有被占用时,发起蓝牙连接寻呼;
[0070] 从上述过程可以看出,APP1和APP2协商的蓝牙连接资源是针对一个目标蓝牙设备的,在不同的应用场景下,APP1和APP2的身份完全可能是互换的,即APP1抢先占用了目标蓝牙连接资源,而APP2是后来需要目标蓝牙连接资源的应用。即上述方案不特别针对某一类型的APP,而是针对某一类型的蓝牙设备,这类蓝牙设备需要被不同的APP通过智能终端的蓝牙模块与之建立蓝牙连接后使用。因此,为了不造成设备混淆,提供蓝牙连接的安全性和可靠性,在注册所述第一预设广播、第二预设广播和第三预设广播是,在它们的广播名称中包含目标蓝牙设备的特征信息,即目标蓝牙连接的特征信息。这里,所谓特征信息,可以是蓝牙设备的生产厂商名称、设备名称、设备编号等。例如,第一预设广播的名称为:特征信息_ASK,第二预设广播的名称为:特征信息_DISCONNECT和第三预设广播的名称为:特征信息_ANSWER。
[0071] 作为一个优选的实施例,结合图1,本发明实施例提供的蓝牙连接资源的管理方法可以按照如下的步骤:
[0072] 通过系统信息传递机制获知到蓝牙连接资源被占用时,通知用户:蓝牙连接资源已被占用;
[0073] 若确定到蓝牙连接资源没有被占用时,发起蓝牙连接寻呼。
[0074] 在所述通过系统信息传递机制获知到蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况之前,还包括:在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用。
[0075] 图2是本发明实施例提供的蓝牙连接资源的管理装置的组成结构示意图,如图2所示,该管理装置包括:通知模块202、连接模块203;所述通知模块202,用于当通过所述系统信息传递机制获知所述蓝牙连接资源被占用时,通知用户蓝牙连接资源被占用情况;
[0076] 所述连接模块203,用于当确定所述蓝牙连接资源没有被占用时,发起蓝牙连接寻呼。
[0077] 其中,还包括:询问模块201,用于在发起蓝牙连接时,先通过系统信息传递机制询问所述蓝牙连接对应的蓝牙连接资源是否被占用。
[0078] 进一步的,上述管理装置中,还包括:
[0079] 释放询问模块,用于在通知用户蓝牙连接资源被占用情况时,询问用户是否选择强制释放所述蓝牙连接资源;
[0080] 释放通知模块,用于当收到用户选择强制释放所述蓝牙连接资源的输入时,通过系统信息传递机制向所述蓝牙连接资源占用者发送释放蓝牙连接资源通知;
[0081] 停止连接模块,用于当收到用户选择不强制释放所述蓝牙连接资源的输入时,停止建立蓝牙连接。
[0082] 上述各个模块在实际应用中,均可由位于智能终端的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)实现。
[0083] 本实施例的蓝牙连接资源的管理装置的各个模块对应执行上述蓝牙连接资源的管理方法实施例所描述的步骤,因此具有相同的有益效果。另外,应该理解到,以上所描述的管理装置的实施方式仅仅是示意性的,所描述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,模块相互之间的耦合或通信连接可以是通过一些接口,也可以是电性或其它的形式。
[0084] 上述各个功能模块作为管理装置的组成部分,可以是或者也可以不是物理框,既可以位于一个地方,也可以分布到多个网络单元上,既可以采用硬件的形式实现,也可以采用软件功能框的形式实现。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。
[0085] 上述蓝牙设备可以是蓝牙智能卡,这里,所述智能卡可以是SIM(Subscriber Identity Module客户识别模块)卡或SD卡(Secure Digital Memory Card,安全数字存储卡)等,便携设备可以是智能手环、智能手表等。而SIM卡可以是标准SIM卡、USIM(Universal Subscriber Identity Module,全球用户识别)卡、UIM(User Identify Module,用户识别模块)卡、MicroSIM卡、NanoSIM卡等各种形态和尺寸的通信卡。SD卡可以是标准SD卡、miniSD卡等各种形态和尺寸的安全数据卡。
[0086] 实施例1
[0087] 如图3所示,运行在同一Android设备上的两个应用APP1和APP2都有通过低功耗蓝牙(BLE)连接同一个外设的需求,但是图示BLE1与BLE2只能同时存在一条通信通道,不能实现APP1与APP2的共享。BLE通道由操作系统建立,并将通道给发起建立的APP2用,并没有提供机制可以把这个通道再赋给另一个APP1。虽然APP2有技术手段可以给APP1提供转接。
[0088] 如图4至图5所示,通过定义特定名称的广播来实现APP1与APP2的通信。例如:APP1与APP2均要与蓝牙智能卡A建立蓝牙连接。
[0089] 具体实现的过程是:
[0090] (1)APP1要建立与蓝牙智能卡A的连接,在此行为开始时,扫描周围是否有参数匹配的蓝牙设备,并同时发送名称为“**_CONNECT_STATUS_ASK”的广播,并携带APP1的包名。
[0091] PACKAGENAME_ASK:APP1的包名;
[0092] (2)此时如果APP2接收到步骤(1)所发送的广播,判断自身状态,如果没有成功连接,则不响应,如果APP2已经连接蓝牙智能卡A,则读取步骤(1)所述广播携带的APP1包名,并发送名称为“**_CONNECT_STATUS_ANSWER”的广播,并且在广播中携带四个键值对数据:
[0093] PACKAGENAME_ASK:APP1的包名;
[0094] PACKAGENAME_ANSWER:APP2的包名;
[0095] APPNAME:APP2的名称;
[0096] CONNECTION_STATUS:APP2的连接状态;
[0097] (3)APP1收到名称为“**_CONNECT_STATUS_ANSWER”的广播,解析出APP2的包名、名称、并判断如果是为APP1发起询问、并且APP2处在连接状态下,则提示操作APP1的用户,让用户选择是否发送消息让APP2断开连接。
[0098] (4)如果用户选择不断开,则APP1停止连接。在用户选择让APP2断开连接的情况下,APP1发送名称为“**_DISCONNECT_CMD”的广播,并携带APP1的包名:
[0099] PACKAGENAME_ASK:APP1的包名;
[0100] APPNAME_ASK:APP1的包名;
[0101] (5)APP2收到名称为“**_DISCONNECT_CMD”的广播,解析操作发起者APP1的包名和名称,并断开与蓝牙卡的连接。并提示用户APP1执行了断开APP2与蓝牙卡连接的操作。
[0102] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0103] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0104] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0105] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0106] 再次说明,以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。