...基于Android设备在熄屏状态下持续连接BLE的方法和系统[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011132534.1
(22)申请日 2020.10.21
(71)申请人 深圳云程科技有限公司
地址 518040 广东省深圳市福田区沙头街
道深南大道以南安徽大厦1001-B室
(72)发明人 沈春松 刁志峰 
(74)专利代理机构 深圳市中融创智专利代理事
务所(普通合伙) 44589
代理人 叶垚平 李立
(51)Int.Cl.
G06F  1/3287(2019.01)
(54)发明名称
一种基于Android设备在熄屏状态下持续连
接BLE的方法和系统
(57)摘要
本申请公开了一种基于Android设备在熄屏
状态下持续连接BLE的方法和系统,该方法包括:
启动保活服务KeepAliceService;启动远程服务
RemoteService;将保活服务KeepAliceService
和运程服务RemoteService相互绑定成为守护进
程;启动后台扫描低功耗蓝牙服务
ScanBLEService;在ScanBLEService中注册
Android屏幕状态广播,当Android屏幕熄屏时,
播放无声的MP3文件。权利要求书1页  说明书4页  附图2页CN 112306216 A 2021.02.02
C N  112306216
A
1.一种基于Android设备在熄屏状态下持续连接BLE的方法,其特征在于,包括:
启动保活服务KeepAliceService;
启动远程服务RemoteService;
将保活服务KeepAliceService和运程服务RemoteService相互绑定成为守护进程;启动后台扫描低功耗蓝牙服务ScanBLEService;
在ScanBLEService中注册Android屏幕状态广播,当Android屏幕熄屏时,播放无声的MP3文件。
2.根据权利要求1所述的检测方法,其特征在于,在所述启动保活服务之后,还包括:把KeepAliceService配置成前台服务并且为KeepAliceService添加START_STICKY。
3.根据权利要求1所述的检测方法,其特征在于,所述启动后台扫描低功耗蓝牙服务ScanBLEService,包括:
开启扫描和监测蓝牙状态的服务ScanBLEService在后台运行;
在ScanBLEService中注册蓝牙状态广播;
蓝牙状态广播检测到蓝牙断开后,开启定时器Timer,每隔预设时间启动一次蓝牙扫描;
扫描到的蓝牙Mac是断开前的设备之后,调用系统连接低功耗蓝牙的BluetoothGatt类的connet方法发起蓝牙连接;
连接成功后关闭蓝牙扫描方法,停止定时器Timer。
4.根据权利要求1所述的检测方法,其特征在于,在ScanBLEService中注册Android屏幕状态广播,当熄屏时,播放无声的MP3件中:
当亮屏时,暂停播放无声MP3。
5.一种基于Android设备在熄屏状态下持续连接BLE的系统,其特征在于,包括:
保活单元,用于启动保活服务KeepAliceService;
远程单元,用于启动远程服务RemoteService;
绑定单元,用于将保活服务KeepAl  iceService和运程服务RemoteService相互绑定成为守护进程;
扫描检测单元,用于启动后台扫描低功耗蓝牙服务ScanBLEService;
MP3单元,用于在ScanBLEService中注册Android屏幕状态广播,当Android屏幕熄屏时,播放无声的M
P3文件。
权 利 要 求 书1/1页CN 112306216 A
一种基于Android设备在熄屏状态下持续连接BLE的方法和
系统
技术领域
[0001]本申请涉及Android系统技术领域,尤其涉及一种基于Android设备在熄屏状态下持续连接BLE的方法和系统。
背景技术
[0002]Android系统的手机设备连接上低功耗蓝牙设备,当手机和低功耗蓝牙设备的距离超出范围后,蓝牙会断开连接。当手机靠近低功耗蓝牙设备时,希望能够自动扫描并连接。
[0003]在android系统8.0版本以上,当手机熄屏之后,扫描低功耗蓝牙的进程还有定时器进程都会被手机停掉。从而导致不能在熄屏之后自动扫描连接低功耗蓝牙。
[0004]Android系统手机在高版本中,当屏幕熄灭休眠后很容易把扫描蓝牙的应用杀掉。这也会导致应用不能自动扫描连接低功耗蓝牙。
[0005]如何解决上述问题是本领域亟待解决的问题。
发明内容
[0006]本申请提供了一种基于Android设备在熄屏状态下持续连接BLE的方法、装置和系统,旨在解决上述问题。
[0007]第一方面,本申请提供了一种基于Android设备在熄屏状态下持续连接BLE 的方法,所述方法包括:
[0008]启动保活服务KeepAliceService;
[0009]启动远程服务RemoteService;
[0010]将保活服务KeepAliceService和运程服务RemoteService相互绑定成为守护进程;
[0011]启动后台扫描低功耗蓝牙服务ScanBLEService;
[0012]在ScanBLEService中注册Android屏幕状态广播,当Android屏幕熄屏时,播放无声的MP3文件。
[0013]第二方面,本申请还提供了基于Android设备在熄屏状态下持续连接BLE 的系统,所述系统包括:
[0014]保活单元,用于启动保活服务KeepAliceService;
[0015]远程单元,用于启动远程服务RemoteService;
[0016]绑定单元,用于将保活服务KeepAliceService和运程服务RemoteService 相互绑定成为守护进程;
[0017]扫描检测单元,用于启动后台扫描低功耗蓝牙服务ScanBLEService;
[0018]MP3单元,用于在ScanBLEService中注册Android屏幕状态广播,当Android 屏幕熄屏时,播放无声的MP3文件。
[0019]本申请公开了一种基于Android设备在熄屏状态下持续连接BLE的方法和系统,通过启动保活服务Kee pAliceService;启动远程服务RemoteService;将保活服务KeepAliceService和运程服务RemoteService相互绑定成为守护进程;启动后台扫描低功耗蓝牙服务ScanBLEService;在ScanBLEService中注册 Android屏幕状态广播,当Android 屏幕熄屏时,播放无声的MP3文件。本申请可以
附图说明
[0020]为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0021]图1是本申请的实施例提供的一种基于Android设备在熄屏状态下持续连接 BLE 的方法的示意流程图;
[0022]图2是本申请的实施例提供的一种基于Android设备在熄屏状态下持续连接 BLE 的方法的子步骤的示意流程图;
[0023]图3为本申请实施例提供的一种基于Android设备在熄屏状态下持续连接 BLE的系统的示意性框图。
具体实施方式
[0024]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0025]附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述
的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0026]本申请的实施例提供了一种基于Android设备在熄屏状态下持续连接BLE 的方法和系统。其中,该基于Android设备在熄屏状态下持续连接BLE的方法可以应用于终端或服务器中,以在熄屏状态下连接BLE。
[0027]下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0028]请参阅图1,图1是本申请的实施例提供的一种目标识别模型的训练方法的示意流程图。其包括步骤S101至步骤S105。
[0029]S101、启动保活服务KeepAliceService。
[0030]具体的,KeepAliceService通过setForeground接口可以将后台Service 设置为前台Service,使进程的优先级由4提升为2,提高了Service的优先级,降低被系统杀的概率。并且通过设置KeepAliceService中的onStartCommand 方法返回START_STICKY,利用系统机制在Service异常关闭之后,系统会尝试创建改Service,从而提高保活的成功性。[0031]S102、启动远程服务RemoteService。
[0032]具体的,把RemoteService配置成为一个单独的进程,跟KeepAliceService 的进
程区别开来。通过把l里面的service标签配置成为 android:process =":remote"即可。
[0033]S103、保活服务KeepAliceService和远程程服务RemoteService相互绑定成为守护进程。
[0034]具体地,因为KeepAliceService和RemoteService两个服务处于两个不同的进程。所以运用AIDL进程间通信的方式,通过KeepAliceService和 RemoteService调用各自的bindService方法相互绑定形成守护进程。当其中一个进程被杀掉之后另一个进程会把被杀掉的进程拉起来。从而使程序能够在后台保活。
[0035]S104、启动后台扫描低功耗蓝牙服务ScanBLEService。
[0036]具体地,要自动扫描连接蓝牙,需要开启一个扫描和监测蓝牙状态的服务 ScanBLEService在后台运行。通过定时器在预设的时间间隔内不间断的扫描并且保持蓝牙与Android设备处于连接状态。
[0037]S105、在ScanBLEService中注册Android屏幕状态广播,当Android设备的屏幕熄屏时,播放无声的MP3件。
[0038]具体地,Android设备在熄屏休眠后,service会被系统挂起,service中的定时器和蓝牙扫描方法都不起作用。因此需要确保ScanBLEService在Android 设备熄屏后也能正常进行。在ScanBLEService中注册Android屏幕状态广播,当Android设置的屏幕熄屏时,通过MediaPlayer循环播放一段无声的mp3。这让ScanBLEService中的定时器没有被挂起,从而使定时器和蓝牙扫描能够正常进行,通过播放音乐,使应用在android设备熄屏休眠的状态下也能保活,保证应用不被杀掉。
[0039]在一个可选的实施例中,在启动保活服务之后还包括以下步骤。
[0040]把KeepAliceService配置成前台服务并且为KeepAliceService添加 START_ STICKY。配置START_STICKY能让服务在异常关闭之后系统再把服务拉起来。确保在异常关闭后保活服务可以正常运行。
[0041]如图2所示,在一个可选的实施例中,所述启动后台扫描低功耗蓝牙服务 ScanBLEService,包括步骤S1041-S1045。
[0042]S1041、开启扫描和监测蓝牙状态的服务ScanBLEService在后台运行。
[0043]S1042、在ScanBLEService中注册蓝牙状态广播。此蓝牙状态广播用来检测蓝牙是处于断开状态还是连接状态。
[0044]S1043、蓝牙状态广播检测到蓝牙断开后,开启定时器Timer,每隔预设时间启动一次蓝牙扫描。当蓝牙状态广播检测到蓝牙处于断开状态时,就会开启一个定时器Timer,每隔一段的时间进行扫描一次,每次扫描时都对比扫描到的蓝牙设备Mac地址。
[0045]在一些实施例中,预设时间可以设置为10s,因此定时器会每隔10秒扫描一次。当然预设时间也可以设置为其它的时间,在此不做具体的限制。
[0046]S1044、扫描到的蓝牙Mac是断开前的设备之后,调用系统连接低功耗蓝牙的BluetoothGatt类的connet方法发起蓝牙连接。在扫描到的蓝牙Mac地址与断开前的设备一样时,调用系统连接蓝牙。
[0047]S1045、连接成功后关闭蓝牙扫描,停止定时器Timer。
[0048]请参阅图3,图3是本申请一实施例提供的一种基于Android设备在熄屏状态下持

本文发布于:2024-09-21 13:27:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/445876.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:蓝牙   服务   扫描
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议