CN104967971B - 一种实现Android系统下蓝牙自动回连的方法 - Google Patents
一种实现Android系统下蓝牙自动回连的方法 Download PDFInfo
- Publication number
- CN104967971B CN104967971B CN201510363981.0A CN201510363981A CN104967971B CN 104967971 B CN104967971 B CN 104967971B CN 201510363981 A CN201510363981 A CN 201510363981A CN 104967971 B CN104967971 B CN 104967971B
- Authority
- CN
- China
- Prior art keywords
- bluetooth
- mobile terminal
- equipment
- device address
- connection
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000006854 communication Effects 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 13
- 241001062009 Indigofera Species 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims 1
- 238000007689 inspection Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 2
- 230000002093 peripheral effect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Abstract
本发明公开了一种实现Android系统下蓝牙自动回连的方法,属于无线通信领域。该方法包括:在蓝牙模块已开启的情形下,当移动终端监听到蓝牙广播为蓝牙连接请求时执行:判断蓝牙连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则与所述蓝牙连接请求中包含的蓝牙设备地址对应的当前蓝牙设备建立连接,并更新蓝牙连接状态为已连接;否则不响应所述蓝牙连接请求。本发明提供的蓝牙自动回连的机制,减少了蓝牙外设重新开机后,再次手动连接的麻烦,使操作更智能、简单,提高了产品的易用性以及用户体验。
Description
技术领域
本发明属于无线通信领域,尤其涉及一种实现Android系统下蓝牙自动回连的方法。
背景技术
现有技术中,蓝牙功能已成为移动终端如智能手机的标配功能,随之与移动终端通信的各种蓝牙设备也层出不穷,例如蓝牙Key。目前,Android系统的移动终端与蓝牙设备的通信过程大概如下,蓝牙设备开启,用户手动操作移动终端,使得Android系统的移动终端与已开启的蓝牙设备建立连接,当蓝牙设备关闭时,Android系统的移动终端会断开与蓝牙设备的蓝牙连接,当蓝牙设备重新启动时,Android系统的移动终端内部的蓝牙模块不会主动去连接该蓝牙设备,需要用户手动重新连接该蓝牙设备,这样就会增加不必要的操作,给用户带来极差的用户体验。
发明内容
为解决现有技术中的技术缺陷,本发明提出了一种实现Android系统下蓝牙自动回连的方法。
本发明提供的技术方案如下:
一种实现Android系统下蓝牙自动回连的方法,包括:移动终端初始化蓝牙连接状态为未连接,注册蓝牙监听广播,设置按钮监听事件,在蓝牙模块已开启的情形下,当移动终端监听到按钮事件为连接蓝牙事件时依次执行步骤A1至A3或者依次执行步骤A2、步骤A1和步骤A3;
步骤A1:移动终端搜索蓝牙设备列表,获取用户选择的当前蓝牙设备的蓝牙设备地址,并根据所述蓝牙设备地址与当前蓝牙设备完成配对;
步骤A2:移动终端判断蓝牙连接状态是否为已连接,是则与缓存中的蓝牙设备地址对应的蓝牙设备断开连接,并更新蓝牙连接状态为未连接,然后执行下一步,否则直接执行下一步;
步骤A3:移动终端与当前蓝牙设备建立连接,并更改蓝牙连接状态为已连接,将当前蓝牙设备的蓝牙设备地址存入缓存,并将终端信息发送给当前蓝牙设备;
上述步骤A1具体为创建活动窗口,在所述活动窗口中显示之前与移动终端已经配对过的蓝牙设备列表,获取用户对所述活动窗口的触发操作,并根据所述触发操作获取用户选择的要连接的当前蓝牙设备的名称和地址,检查当前蓝牙设备是否已与移动终端配对,是则执行下一步,否则与当前蓝牙设备完成配对后执行下一步。
当移动终端监听到蓝牙广播为蓝牙连接请求时依次执行步骤B1至B3或者依次执行步骤B2、步骤B1和步骤B3;
步骤B1:移动终端判断蓝牙连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则执行下一步,否则不响应所述蓝牙连接请求;
步骤B2:移动终端判断蓝牙连接状态是否为未连接,是则执行下一步,否则不响应所述蓝牙连接请求;
步骤B3:移动终端与所述蓝牙连接请求中包含的蓝牙设备地址对应的蓝牙设备建立连接,并更新蓝牙连接状态为已连接。
本发明提供的所述方法还包括当移动终端监听到蓝牙广播为断开连接请求时执行:判断所述断开连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则与所述断开连接请求中包含的蓝牙设备地址对应的蓝牙设备断开连接,并更新蓝牙连接状态为未连接,否则不响应所述断开连接请求。
上述方法还包括,判断注册的所述蓝牙监听广播中的蓝牙广播接收对象的接收方法是否被调用,是则调用第一预设方法并根据调用第一预设方法获得的返回值确定蓝牙广播的类型,所述蓝牙广播的类型包括蓝牙连接请求和断开连接请求。
上述方法还包括移动终端判断表示连接蓝牙设备按钮的按钮事件中的第二预设方法是否被调用,是则确定监听到按钮事件为连接蓝牙事件,否则确定未监听到所述连接蓝牙事件。
上述方法还包括当蓝牙模块未开启时,移动终端提示开启蓝牙模块,当移动终端监听到按钮事件为打开蓝牙事件时,开启蓝牙模块。所述开启蓝牙模块具体为:创建请求开启蓝牙的启动事件,并通过调用预设的回调函数判断开启蓝牙模块是否成功,是则确定蓝牙模块已开启,否则结束。
本发明提供的方法中,所述移动终端判断蓝牙连接状态是否为已连接具体为,所述移动终端判断蓝牙连接状态标识是否为预设值,是则确定蓝牙连接状态为已连接,否则确定蓝牙连接状态为未连接。
上述步骤A3和步骤B3还包括:移动终端与建立连接的当前蓝牙设备通信,待通信结束后与当前蓝牙设备断开连接,并更新蓝牙连接状态为未连接。与当前蓝牙设备建立连接具体包括创建蓝牙连接子线程,所述创建蓝牙连接子线程之后还包括创建蓝牙通信子线程,所述与当前蓝牙设备断开连接具体包括注销所述蓝牙连接子线程和所述蓝牙通信子线程。
采用上述技术方案达到的有益效果如下:本发明提供的蓝牙自动回连的机制,减少了蓝牙外设重新开机后需用户再次手动连接的麻烦,使设备之间的蓝牙连接操作更智能、简单,提高了产品的易用性以及用户体验。
附图说明
图1是本发明实施例1提供的当监听到蓝牙广播为蓝牙连接请求时的操作流程图。
图2是本发明实施例2提供的一种实现Android系统下蓝牙自动回连的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步地详细描述。
实施例1
本实施例提供了一种实现Android系统下蓝牙自动回连的方法,该方法应用于Android操作系统的移动终端上,本实施提供的方法包括:
初始化操作:移动终端初始化蓝牙连接状态为未连接,注册蓝牙监听广播,设置按钮监听事件;
监听操作:1)判断表示打开蓝牙按钮的按钮事件中的第二预设方法是否被调用,是则确定监听到按钮事件为打开蓝牙事件,否则确定未监听到打开蓝牙事件。
2)判断注册的所述蓝牙监听广播中的蓝牙广播接收对象的接收方法是否被调用,是则调用第一预设方法并根据调用第一预设方法获得的返回值确定蓝牙广播的类型,所述蓝牙广播的类型包括蓝牙连接请求和断开连接请求。
3)判断表示连接蓝牙设备按钮的按钮事件中的第二预设方法是否被调用,是则确定监听到按钮事件为连接蓝牙事件,否则确定未监听到所述连接蓝牙事件。
其他操作:
当监听到按钮事件为打开蓝牙事件时执行:开启蓝牙模块。
当监听到按钮事件为连接蓝牙事件时依次执行步骤A1至A3:
步骤A1:移动终端搜索蓝牙设备列表,获取用户选择的当前蓝牙设备的蓝牙设备地址,并根据所述蓝牙设备地址与当前蓝牙设备完成配对;
步骤A2:移动终端判断蓝牙连接状态是否为已连接,是则与缓存中的蓝牙设备地址对应的蓝牙设备断开连接,并更新蓝牙连接状态为未连接,然后执行下一步,否则直接执行下一步;
具体的,所述移动终端判断蓝牙连接状态是否为已连接具体为,所述移动终端判断蓝牙连接状态标识是否为预设值,是则确定蓝牙连接状态为已连接,否则确定蓝牙连接状态为未连接。
步骤A3:移动终端与当前蓝牙设备建立连接,并更改蓝牙连接状态为已连接,将当前蓝牙设备的蓝牙设备地址存入缓存,并将终端信息发送给当前蓝牙设备;
进一步的,上述步骤A1和步骤A2的执行先后顺序可以互换。
当监听到蓝牙广播为蓝牙连接请求时依次执行步骤B1至B3,如图1所示:
步骤B1:移动终端判断蓝牙连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则执行下一步,否则不响应所述蓝牙连接请求;
步骤B2:移动终端判断蓝牙连接状态是否为未连接,是则执行下一步,否则不响应所述蓝牙连接请求;
步骤B3:移动终端与所述蓝牙连接请求中包含的蓝牙设备地址对应的蓝牙设备建立连接,并更新蓝牙连接状态为已连接。
进一步的,上述步骤B1和步骤B2的执行先后顺序可以互换。
当监听到蓝牙广播为断开连接请求时执行:判断所述断开连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则与所述断开连接请求中包含的蓝牙设备地址对应的蓝牙设备断开连接,并更新蓝牙连接状态为未连接,否则不响应所述断开连接请求。
上述步骤A3和步骤B3之后还包括:移动终端与建立连接的当前蓝牙设备通信,待通信结束后与当前蓝牙设备断开连接,并更新蓝牙连接状态为未连接。
实施例2
本发明的实施例提供了一种实现Android系统下蓝牙自动回连的方法,该方法应用于Android操作系统的移动终端上,该方法以一个应用程序的形式安装在移动终端上,本实施例以Android操作系统的移动终端(如Android手机)与蓝牙设备(如蓝牙key)之间的蓝牙连接为应用场景对本发明的方法进行详细说明,所述移动终端包含有蓝牙模块,用于与蓝牙设备进行蓝牙通信。如图1所示,当安装在移动终端上的该应用程序开始运行时,执行以下步骤:
步骤100:初始化蓝牙连接状态,注册蓝牙监听广播;
具体的,初始化蓝牙连接状态为未连接;
根据应用程序的上下文(mContext)注册蓝牙监听广播(mContext.registerReceiver(broadcastReceiver,intentFilter);其中broadcastReceiver为定义的蓝牙广播接收类的实现,intentFilter为事件启动类的实现)。
例如,注册蓝牙监听广播的具体实现如下:
其中,蓝牙广播接收类的具体实现如下:
步骤101:检测是否已开启蓝牙模块,是则执行步骤103,否则执行步骤102;
具体的,调用系统接口函数BluetoothAdapter.getDefaultAdapter().isEnabled(),判断调用该函数的返回值否为true,是则已开启蓝牙模块,否则未开启。
进一步的,若未开启蓝牙,则提示打开蓝牙,等待用户开启蓝牙模块。
步骤102:判断是否监听到打开蓝牙事件,是则开启蓝牙模块,然后执行步骤103,否则返回执行步骤101;
具体的,通过UI(用户操作界面)层的表示打开蓝牙按钮的按钮事件即BtnBlueOpen.setOnClickListener来监听打开蓝牙事件。
例如,设置的表示打开蓝牙按钮的按钮事件如下:
本步骤具体为,判断方法onClick(View v)是否被重载,是则表示监听到打开蓝牙事件,开启蓝牙模块,然后执行步骤103,否则表示未监听到打开蓝牙事件,返回执行步骤101。
本实施例中,所述开启蓝牙模块具体包括:首先创建一个请求开启蓝牙的启动事件,并通过调用一个回调函数判断开启蓝牙模块是否成功,若开启成功则继续执行步骤103,若开启失败则结束。
所述创建请求开启蓝牙的启动事件的具体实现为:Intent intent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent,CODE_TURN_ON_BT);
其中的intent是Android系统的一个事件启动对象,startActivityForResult函数是向Android系统回传请求的一个接口函数,CODE_TURN_ON_BT是一个用于表示向Android系统请求的请求标志;
所述通过调用一个回调函数判断开启蓝牙模块是否成功具体为:重载Activity下的onActivityResult(int requestCode,int resultCode,Intent data)函数,判断重载该函数得到的返回值resultCode,如果resultCode==Activity.RESULT_OK,则启动蓝牙模块成功,如果resultCode==Activity.RESULT_CANCELED则说明用户取消了打开Android系统蓝牙的操作,启动蓝牙模块失败。具体程序实现如下:
步骤103:判断是否监听到蓝牙广播,是则执行步骤110,否则执行步骤104;
具体的,判断蓝牙广播接收类broadcastReceiver下的函数onReceive(Contextcontext,Intent intent)是否被调用,是则表示接收到蓝牙广播,执行步骤110;否则表示未接收到蓝牙广播,执行步骤104。
步骤104:判断是否监听到连接蓝牙事件,是则执行步骤105,否则返回执行步骤103;
具体的,通过UI(用户操作界面)层的表示连接蓝牙设备按钮的按钮事件即BtnBlueConnect.setOnClickListener来监听连接蓝牙事件。
例如,设置的连接蓝牙设备按钮的按钮事件如下:
本步骤具体为,判断方法onClick(View v)是否被重载,是则表示监听到连接蓝牙事件,执行步骤105,否则表示未监听到连接蓝牙事件,执行步骤103。
步骤105:搜索蓝牙设备列表,获取要连接的当前蓝牙设备的蓝牙设备地址,并与当前蓝牙设备配对;
具体的,创建一个搜索蓝牙设备列表的Activity,在蓝牙设备列表的Activity中显示之前与移动终端已经配对过的蓝牙设备列表。同时提示用户点击搜索按钮,通过用户点击来选择当前要连接的蓝牙设备;当用户选择要连接的蓝牙设备后,系统可以获得当前选择的蓝牙设备的名称以及蓝牙设备地址(如macAddr:00:11:22:AA:BB:CC),通过获得蓝牙设备地址,检测当前选择的蓝牙设备与移动终端是否已经配对,如果是则直接进下一步,否则进入配对步骤。
上述检测当前选择的蓝牙设备与移动终端是否已经配对,如果是则直接进下一步即步骤106,否则进入配对步骤,具体包括:
1.1调用Android系统接口BluetoothAdapter获得当前显示的蓝牙设备列表;
1.2调用函数btAdapter.getRemoteDevice(macAddr)获得类BluetoothDevice的一个对象device,其中macAddr为用户选择的要连接的蓝牙设备的蓝牙设备地址;
1.3调用类的方法device.getBondState()判断当前选择的蓝牙设备是否与Android系统已经配对,若device.getBondState()!=BluetoothDevice.BOND_BONDED则表明当前选择的蓝牙设备之前没有和移动终端配对过,执行步骤1.4;否则表明当前选择的蓝牙设备之前已经和移动终端配对,直接执行步骤106;
1.4与当前选择的蓝牙设备进行配对,并判断是否成功配对,是则执行步骤106,否则结束。
优选的,上述步骤1.1-1.4的具体程序实现为:
步骤106:判断蓝牙连接状态是否为已连接,是则执行步骤107,否则执行步骤108;
具体的,判断蓝牙连接状态标识connected(java中boolean类型)是否为true,是则已连接,执行步骤107,否则未连接,执行步骤108。
进一步的,上述步骤105和步骤106的先后顺序可以调换,即先执行步骤106的判断蓝牙连接状态是否为已连接,是则执行步骤107之后再执行步骤105,否则直接执行步骤105,并在执行完成步骤105之后执行步骤108。
步骤107:根据缓存中的蓝牙设备地址,与已连接的蓝牙设备断开连接,并更新蓝牙连接状态为未连接,然后执行步骤108;
具体的,断开与当前蓝牙设备的连接,并重置蓝牙连接状态为未连接,以及注销蓝牙连接子线程和蓝牙通信子线程。
具体实现如下:
其中mConnectThread为蓝牙连接子线程,mSendRecv为蓝牙通信子线程。
步骤108:与当前蓝牙设备建立连接,并更新蓝牙连接状态为已连接;
具体的,创建与已经配对的蓝牙设备的蓝牙连接子线程,以及创建蓝牙通信子线程;如果子线程创建成功,则通过传入的Handler来更新主UI线程,来说明终端与蓝牙设备已经成功连接。
先创建连接蓝牙设备的蓝牙连接子线程,在蓝牙连接子线程创建成功后,再创建蓝牙通信子线程。具体程序实现如下:
其中connect为蓝牙连接子线程,connected为蓝牙通信子线程。
步骤109:将当前蓝牙设备地址存入缓存,并将终端型号和终端MAC地址发送给当前蓝牙设备,然后执行步骤116;
具体的,与蓝牙设备建立连接成功后,终端应用程序会把当前蓝牙设备的名称以及蓝牙设备地址通过SharedPreferences缓存到本地,然后终端应用程序会把终端Android系统的终端厂商、终端型号以及终端MAC地址发送给当前蓝牙设备,以方便让连接的蓝牙设备记住已经连接的终端设备,蓝牙设备会在重新开机时,优先向记住的上次连接的移动终端发起连接请求。
进一步的,将当前蓝牙设备地址存入缓存具体为,若缓存中无蓝牙设备地址则缓存当前蓝牙设备地址,若缓存中已有蓝牙设备地址,则用当前蓝牙设备地址覆盖缓存中已有的蓝牙设备地址。
步骤110:判断蓝牙广播类型,若是蓝牙连接请求则执行步骤113,若是断开连接请求则执行步骤111;
具体的,当接收到蓝牙广播时,调用方法intent.getAction(),通过调用该方法返回的String字符串判断蓝牙广播类型,若返回的String字符串为BluetoothDevice.ACTION_ACL_DISCONNECTED则为断开连接请求,若返回的String字符串为BluetoothDevice.ACTION_ACL_CONNECTED则为蓝牙连接请求。
步骤111:判断断开连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则执行步骤112,否则返回执行步骤103;
具体的,所述缓存的蓝牙设备地址即为当前连接的蓝牙设备的设备地址,判断断开连接请求中的蓝牙设备地址是否与当前连接的蓝牙设备地址匹配的具体实现为:device.getAddress().equalsIgnoreCase(tm.getBTDeviceAddr());其中device.getAddress()为断开连接请求中的蓝牙设备地址,tm.getBTDeviceAddr()为当前连接的蓝牙设备地址。
步骤112:根据断开连接请求中包含的蓝牙设备地址,断开与当前蓝牙设备的连接,并更新当前蓝牙连接状态为未连接,然后返回执行步骤103;
具体的,断开与当前蓝牙设备的连接,并重置蓝牙连接状态为未连接,以及注销蓝牙连接子线程和蓝牙通信子线程。
具体实现如下:
其中mConnectThread为蓝牙连接子线程,mSendRecv为蓝牙通信子线程。
步骤113:判断蓝牙连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则执行步骤114,否则返回执行步骤103;
进一步的,执行本步骤之前还可以包括:判断是否缓存有蓝牙设备地址,是则执行步骤113,否则返回执行步骤103。
步骤114:判断蓝牙连接状态是否为未连接,是则返回执行步骤103,否则执行步骤115;
进一步的,步骤114和步骤113的先后执行顺序可以调换,即先执行步骤114,判断蓝牙连接状态是否为未连接,是则返回步骤103,否则执行步骤113,判断连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则执行步骤115,否则返回步骤103。
步骤115:根据连接请求中包含的蓝牙设备地址,与当前蓝牙设备建立连接,并更新蓝牙连接状态为已连接;
具体的,创建与当前蓝牙设备的蓝牙连接子线程,以及创建蓝牙通信子线程;如果子线程创建成功,则通过传入的Handler来更新主UI线程,来说明终端与蓝牙设备已经成功连接。具体程序实现同步骤108,在此不再赘述。
步骤116:与当前蓝牙设备通信,待通信结束后断开与当前蓝牙设备的连接,并更新蓝牙连接状态为未连接,然后返回执行步骤103。
进一步的,当应用程序停止运行时,会注销步骤101注册的蓝牙监听广播。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (11)
1.一种实现Android系统下蓝牙自动回连的方法,其特征在于包括:
移动终端初始化蓝牙连接状态为未连接,注册蓝牙监听广播,设置按钮监听事件,在蓝牙模块已开启的情形下,当移动终端监听到按钮事件为连接蓝牙事件时依次执行步骤A1至A3或者依次执行步骤A2、步骤A1和步骤A3;当移动终端监听到蓝牙广播为蓝牙连接请求时依次执行步骤B1至B3或者依次执行步骤B2、步骤B1和步骤B3;
步骤A1:移动终端搜索蓝牙设备列表,获取用户选择的当前蓝牙设备的蓝牙设备地址,并根据所述蓝牙设备地址与当前蓝牙设备完成配对;
步骤A2:移动终端判断蓝牙连接状态是否为已连接,是则与缓存中的蓝牙设备地址对应的蓝牙设备断开连接,并更新蓝牙连接状态为未连接,然后执行下一步,否则直接执行下一步;
步骤A3:移动终端与当前蓝牙设备建立连接,并更新蓝牙连接状态为已连接,将当前蓝牙设备的蓝牙设备地址存入缓存,并将终端信息发送给当前蓝牙设备;
步骤B1:移动终端判断蓝牙连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则执行下一步,否则不响应所述蓝牙连接请求;
步骤B2:移动终端判断蓝牙连接状态是否为未连接,是则执行下一步,否则不响应所述蓝牙连接请求;
步骤B3:移动终端与所述蓝牙连接请求中包含的蓝牙设备地址对应的蓝牙设备建立连接,并更新蓝牙连接状态为已连接。
2.根据权利要求1所述的方法,其特征在于:所述方法还包括当移动终端监听到蓝牙广播为断开连接请求时执行:判断所述断开连接请求中包含的蓝牙设备地址是否与缓存中的蓝牙设备地址匹配,是则与所述断开连接请求中包含的蓝牙设备地址对应的蓝牙设备断开连接,并更新蓝牙连接状态为未连接,否则不响应所述断开连接请求。
3.根据权利要求1或2所述的方法,其特征在于:所述注册蓝牙监听广播之后还包括,判断注册的所述蓝牙监听广播中的蓝牙广播接收对象的接收方法是否被调用,是则调用第一预设方法并根据调用第一预设方法获得的返回值确定蓝牙广播的类型,所述蓝牙广播的类型包括蓝牙连接请求和断开连接请求。
4.根据权利要求1所述的方法,其特征在于:所述方法还包括移动终端判断表示连接蓝牙设备按钮的按钮事件中的第二预设方法是否被调用,是则确定监听到按钮事件为连接蓝牙事件,否则确定未监听到所述连接蓝牙事件。
5.根据权利要求1所述的方法,其特征在于:所述方法还包括当蓝牙模块未开启时,移动终端提示开启蓝牙模块,当移动终端监听到按钮事件为打开蓝牙事件时,开启蓝牙模块。
6.根据权利要求5所述的方法,其特征在于:所述开启蓝牙模块具体为:创建请求开启蓝牙的启动事件,并通过调用预设的回调函数判断开启蓝牙模块是否成功,是则确定蓝牙模块已开启,否则结束。
7.根据权利要求1所述的方法,其特征在于:所述步骤A1具体为创建活动窗口,在所述活动窗口中显示之前与移动终端已经配对过的蓝牙设备列表,获取用户对所述活动窗口的触发操作,并根据所述触发操作获取用户选择的要连接的当前蓝牙设备的名称和地址,检查当前蓝牙设备是否已与移动终端配对,是则执行下一步,否则与当前蓝牙设备完成配对后执行下一步。
8.根据权利要求1所述的方法,其特征在于:所述移动终端判断蓝牙连接状态是否为已连接具体为,所述移动终端判断蓝牙连接状态标识是否为预设值,是则确定蓝牙连接状态为已连接,否则确定蓝牙连接状态为未连接。
9.根据权利要求1所述的方法,其特征在于:所述步骤A3还包括:移动终端与建立连接的当前蓝牙设备通信,待通信结束后与当前蓝牙设备断开连接,并更新蓝牙连接状态为未连接;
所述步骤B3还包括:移动终端与建立连接的蓝牙设备通信,待通信结束后与蓝牙设备断开连接,并更新蓝牙连接状态为未连接。
10.根据权利要求9所述的方法,其特征在于:所述与当前蓝牙设备建立连接具体包括创建蓝牙连接子线程,所述创建蓝牙连接子线程之后还包括创建蓝牙通信子线程,所述与当前蓝牙设备断开连接具体包括注销所述蓝牙连接子线程和所述蓝牙通信子线程。
11.根据权利要求1所述的方法,其特征在于:所述步骤B1之前还包括:移动终端判断缓存中是否缓存有蓝牙设备地址,是则执行步骤B1,否则不响应所述蓝牙连接请求。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510363981.0A CN104967971B (zh) | 2015-06-26 | 2015-06-26 | 一种实现Android系统下蓝牙自动回连的方法 |
PCT/CN2016/084568 WO2016206528A1 (zh) | 2015-06-26 | 2016-06-02 | 一种实现Android系统下蓝牙自动回连的方法 |
US15/834,018 US10070293B2 (en) | 2015-06-26 | 2017-12-06 | Method for implementing bluetooth automatic return link in android system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510363981.0A CN104967971B (zh) | 2015-06-26 | 2015-06-26 | 一种实现Android系统下蓝牙自动回连的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104967971A CN104967971A (zh) | 2015-10-07 |
CN104967971B true CN104967971B (zh) | 2018-04-27 |
Family
ID=54221892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510363981.0A Active CN104967971B (zh) | 2015-06-26 | 2015-06-26 | 一种实现Android系统下蓝牙自动回连的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10070293B2 (zh) |
CN (1) | CN104967971B (zh) |
WO (1) | WO2016206528A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967971B (zh) | 2015-06-26 | 2018-04-27 | 飞天诚信科技股份有限公司 | 一种实现Android系统下蓝牙自动回连的方法 |
CN105636004A (zh) * | 2015-12-25 | 2016-06-01 | 惠州Tcl移动通信有限公司 | 一种基于低功耗蓝牙的蓝牙自动重连方法及系统 |
CN106211355B (zh) * | 2016-06-15 | 2019-12-20 | 飞天诚信科技股份有限公司 | 一种控制数据交互的设备、系统及其工作方法 |
CN109417758B (zh) * | 2016-06-27 | 2021-01-15 | 华为技术有限公司 | 一种蓝牙连接的方法及终端 |
CN106101992A (zh) * | 2016-08-08 | 2016-11-09 | 广州山坡羊信息科技有限公司 | 智能标识系统及方法 |
DE102016116077A1 (de) * | 2016-08-29 | 2018-03-01 | Unify Patente Gmbh & Co. Kg | Verfahren zum Zuweisen einer MAC-Adresse zu einem Kommunikationsgerät in einer Netzwerkumgebung und Datenbank mit MAC-Adressen |
CN106793158B (zh) * | 2016-11-26 | 2020-03-17 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端状态管理方法及装置 |
CN106454713B (zh) * | 2016-12-07 | 2019-08-30 | 飞天诚信科技股份有限公司 | 一种移动设备与蓝牙设备配对同步的方法及装置 |
CN106686614A (zh) * | 2016-12-17 | 2017-05-17 | 福建瑞之付微电子有限公司 | 一种对支付终端及其外设蓝牙模块的测试方法 |
CN106792452A (zh) * | 2016-12-19 | 2017-05-31 | 四川长虹电器股份有限公司 | 基于gatt的蓝牙体感数据处理方法 |
CN106681774B (zh) * | 2016-12-30 | 2021-01-12 | Tcl通力电子(惠州)有限公司 | 蓝牙扬声器的软件升级方法及智能终端 |
CN106878790A (zh) * | 2017-04-27 | 2017-06-20 | 四川长虹电器股份有限公司 | 蓝牙遥控器功耗控制方法 |
CN107301064B (zh) * | 2017-05-19 | 2021-08-06 | 深圳Tcl新技术有限公司 | 蓝牙固件的升级方法、电视终端及计算机可读存储介质 |
CN107197346B (zh) * | 2017-05-27 | 2021-06-15 | 深圳Tcl新技术有限公司 | 电视终端及蓝牙设备回连方法和计算机可读存储介质 |
CN107257540B (zh) * | 2017-07-04 | 2020-05-19 | 飞天诚信科技股份有限公司 | 一种实现蓝牙设备与移动设备配对的方法及装置 |
GB2566324B (en) * | 2017-09-11 | 2019-11-20 | Dyson Technology Ltd | Method of establishing wireless connection between a mobile controller and a controllable device |
CN107770762B (zh) * | 2017-11-20 | 2020-05-19 | 飞天诚信科技股份有限公司 | 一种建立蓝牙连接的方法及装置 |
CN108200559B (zh) * | 2017-12-27 | 2020-07-07 | 飞天诚信科技股份有限公司 | 一种通过广播数据表示蓝牙设备功能的方法及蓝牙设备 |
CN108282767B (zh) * | 2017-12-29 | 2020-11-17 | 歌尔科技有限公司 | 一种配对方法、装置和系统 |
WO2020024180A1 (zh) * | 2018-08-01 | 2020-02-06 | 华为技术有限公司 | 一种蓝牙通信的方法及双模蓝牙终端 |
CN109413629A (zh) * | 2018-11-20 | 2019-03-01 | 智车优行科技(北京)有限公司 | 蓝牙重连方法 |
CN109969882B (zh) * | 2019-03-13 | 2021-06-01 | 广东安居宝数码科技股份有限公司 | 蓝牙召梯方法、装置、计算机设备和存储介质 |
CN110191450B (zh) * | 2019-04-02 | 2021-02-26 | 华为技术有限公司 | 业务连接建立方法、蓝牙主设备、芯片及蓝牙系统 |
CN110139261B (zh) * | 2019-06-06 | 2024-02-20 | 深圳诺康医疗设备股份有限公司 | 蓝牙设备、蓝牙移动终端、蓝牙快连系统及其方法 |
CN112399390B (zh) * | 2019-08-14 | 2021-10-15 | 华为技术有限公司 | 一种蓝牙回连的方法及相关装置 |
CN112533181A (zh) * | 2019-08-31 | 2021-03-19 | 深圳市三嘉立信科技有限公司 | 一种蓝牙连接便捷应用系统 |
CN110972123B (zh) * | 2019-12-04 | 2023-11-03 | 上海肇观电子科技有限公司 | 实现无线连接的方法、硬件及计算机介质 |
CN111246441B (zh) * | 2020-02-26 | 2021-08-24 | 深圳市岍丞技术有限公司 | 蓝牙耳机与终端的连接方法、系统及存储介质 |
CN111385781B (zh) * | 2020-03-03 | 2023-02-24 | 广东小天才科技有限公司 | 一种文件分享方法、智能手表、存储介质及电子设备 |
CN111356120B (zh) * | 2020-04-20 | 2022-08-16 | 遂宁摩天时代科技有限公司 | 具有蓝牙功能手机自动检测范围内无线耳机的方法 |
CN111629366B (zh) * | 2020-04-27 | 2023-06-09 | Oppo(重庆)智能科技有限公司 | 蓝牙设备间的交互方法及装置、存储介质和电子设备 |
CN111615090B (zh) * | 2020-04-27 | 2023-07-14 | Oppo(重庆)智能科技有限公司 | 蓝牙设备间的交互方法及装置、存储介质和电子设备 |
CN111447602B (zh) * | 2020-06-17 | 2020-09-29 | 成都极米科技股份有限公司 | 蓝牙设备及其蓝牙抢占方法和装置、计算机可读存储介质 |
CN111884684B (zh) * | 2020-08-26 | 2021-07-16 | 北京百瑞互联技术有限公司 | 一种基于状态机控制的蓝牙物理连接的方法和系统 |
CN112188456B (zh) * | 2020-09-25 | 2023-02-14 | 三维通信股份有限公司 | 蓝牙设备数据采集方法和装置、存储介质和电子装置 |
CN114584815A (zh) * | 2020-11-30 | 2022-06-03 | 上海新微技术研发中心有限公司 | 一种可回控投屏方法、计算机可读存储介质和装置 |
CN113490192B (zh) * | 2021-07-26 | 2024-04-02 | 深圳市元征科技股份有限公司 | 蓝牙连接方法、装置、终端设备及可读存储介质 |
CN113783994B (zh) * | 2021-09-06 | 2023-06-23 | Oppo广东移动通信有限公司 | 提示信息的显示方法、装置、电子设备以及存储介质 |
CN117135600A (zh) * | 2023-02-10 | 2023-11-28 | 荣耀终端有限公司 | 一种蓝牙广播请求的处理方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080088886A (ko) * | 2007-03-30 | 2008-10-06 | 삼성전자주식회사 | 블루투스 장치의 재 연결 방법 및 장치 |
CN101635586A (zh) * | 2009-07-21 | 2010-01-27 | 李治勋 | 一种蓝牙输入设备的自动连接方法 |
CN101835279A (zh) * | 2009-12-29 | 2010-09-15 | 闻泰集团有限公司 | 一种移动终端连接蓝牙设备的简化方法 |
CN103179635A (zh) * | 2013-01-11 | 2013-06-26 | 南京邮电大学 | 一种基于蓝牙的Android移动设备自组网和通信的方法 |
CN104540091A (zh) * | 2014-12-27 | 2015-04-22 | 深圳市中易腾达科技股份有限公司 | 基于蓝牙设备的自动配对系统及其自动配对方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003092784A (ja) * | 2001-09-18 | 2003-03-28 | Toshiba Corp | 電子機器及び無線通信システム |
US8880122B2 (en) * | 2007-08-31 | 2014-11-04 | Qualcomm Incorporated | System and method for identifying devices in a wireless network |
US9047783B2 (en) * | 2008-01-31 | 2015-06-02 | Sirius Xm Connected Vehicle Services Inc. | Communication systems and methods for flexible telematics at a vehicle |
US20120239742A1 (en) * | 2009-06-25 | 2012-09-20 | Magnetu Mobile Ltd. | Mobile social networking assembly and efficient data exchange therefor |
CN102545965A (zh) * | 2010-12-31 | 2012-07-04 | 上海博泰悦臻电子设备制造有限公司 | 基于蓝牙的手机和车载设备的协同处理方法和系统 |
CN103813330A (zh) * | 2012-11-15 | 2014-05-21 | 中兴通讯股份有限公司 | 一种通信终端、系统以及权限管理方法 |
JP6105370B2 (ja) * | 2013-04-25 | 2017-03-29 | 京セラ株式会社 | ユーザ端末、セルラ基地局及びプロセッサ |
CN104507037B (zh) * | 2014-12-12 | 2017-11-28 | 飞天诚信科技股份有限公司 | 一种实现智能密钥装置与移动设备进行蓝牙绑定的方法 |
CN104967971B (zh) * | 2015-06-26 | 2018-04-27 | 飞天诚信科技股份有限公司 | 一种实现Android系统下蓝牙自动回连的方法 |
JP6311943B2 (ja) * | 2015-11-18 | 2018-04-18 | コニカミノルタ株式会社 | 画像形成システム、画像形成装置およびプログラム |
US10917767B2 (en) * | 2016-03-31 | 2021-02-09 | Intel Corporation | IOT device selection |
-
2015
- 2015-06-26 CN CN201510363981.0A patent/CN104967971B/zh active Active
-
2016
- 2016-06-02 WO PCT/CN2016/084568 patent/WO2016206528A1/zh active Application Filing
-
2017
- 2017-12-06 US US15/834,018 patent/US10070293B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080088886A (ko) * | 2007-03-30 | 2008-10-06 | 삼성전자주식회사 | 블루투스 장치의 재 연결 방법 및 장치 |
CN101635586A (zh) * | 2009-07-21 | 2010-01-27 | 李治勋 | 一种蓝牙输入设备的自动连接方法 |
CN101835279A (zh) * | 2009-12-29 | 2010-09-15 | 闻泰集团有限公司 | 一种移动终端连接蓝牙设备的简化方法 |
CN103179635A (zh) * | 2013-01-11 | 2013-06-26 | 南京邮电大学 | 一种基于蓝牙的Android移动设备自组网和通信的方法 |
CN104540091A (zh) * | 2014-12-27 | 2015-04-22 | 深圳市中易腾达科技股份有限公司 | 基于蓝牙设备的自动配对系统及其自动配对方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016206528A1 (zh) | 2016-12-29 |
US20180103338A1 (en) | 2018-04-12 |
CN104967971A (zh) | 2015-10-07 |
US10070293B2 (en) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104967971B (zh) | 一种实现Android系统下蓝牙自动回连的方法 | |
CN105763936B (zh) | 播放音频的方法及装置 | |
CN105656523B (zh) | 一种蓝牙主设备的来电处理方法及装置、蓝牙主设备 | |
WO2016029706A1 (zh) | 终端的业务处理方法及装置 | |
CN104469482A (zh) | 智能终端连接蓝牙设备的控制方法及装置 | |
CN105516768B (zh) | 一种基于蓝牙的电视遥控器位置提醒方法及系统 | |
CN104581665B (zh) | 一种通话转移的方法及装置 | |
WO2016045190A1 (zh) | 系统和/或应用程序的切换方法、切换系统和终端 | |
CN105187628A (zh) | 一种来电免打扰方法及移动终端 | |
CN101296433A (zh) | 手机在低电量时自动激活呼叫转移的方法 | |
CN108600552A (zh) | 手机来电的实现方法及系统、手机、智能手环 | |
CN104967730A (zh) | 通话方式及终端 | |
CN105721699A (zh) | 一种移动终端的行车模式切换方法及系统 | |
CN111356159B (zh) | 一种驻网模式调整方法、装置及存储介质 | |
CN107370881A (zh) | 一种智能手表控制方法及系统 | |
CN102868819B (zh) | 一种处理公共账户下通信业务的方法及装置 | |
CN104717378A (zh) | 呼叫转移方法及装置 | |
CN111787496B (zh) | 一种手机间转接电话的方法及设备 | |
CN101510915A (zh) | 一种手机软件窗口的快速切换方法 | |
CN105025373B (zh) | 电视机、远程控制系统及其控制方法 | |
CN106211355A (zh) | 一种控制数据交互的设备、系统及其工作方法 | |
CN104618593A (zh) | 一种移动终端及其第三方呼入时的操作方法 | |
CN106101422A (zh) | 一种通过蓝牙手表接听或拒接电话的方法及系统 | |
CN111107093A (zh) | 一种应用登录方法、装置、终端及存储介质 | |
CN111328061A (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 |