一种自动移除蓝牙列表中不可用设备的方法及装置与流程

文档序号:24812361发布日期:2021-04-27 13:15阅读:154来源:国知局
一种自动移除蓝牙列表中不可用设备的方法及装置与流程

1.本发明涉及蓝牙连接领域,尤其涉及一种自动移除蓝牙列表中不可用设备的方法及装置。


背景技术:

2.现有技术中,终端蓝牙列表中显示的蓝牙设备,在蓝牙设备关闭蓝牙、蓝牙设备死机或蓝牙设备超出可连接范围时不会从蓝牙列表中自动移除,容易出现用户选择上述不可用蓝牙设备进行蓝牙连接引发异常情况。因此亟需一种自动移除蓝牙列表中不可用设备的方法,防止该类误操作情况的发生。


技术实现要素:

3.本发明的目的是为了克服现有技术的不足,提供一种自动移除蓝牙列表中不可用设备的方法及装置。
4.本发明提供了一种自动移除蓝牙列表中不可用设备的方法,包括:
5.步骤s1:装置初始化蓝牙列表和对比设备状态列表;
6.步骤s2:装置根据蓝牙列表刷新蓝牙列表显示界面,启动第一定时器和第二定时器;
7.当第一定时器的计时达到第一预设时间时进入第一中断,执行步骤r1至步骤r4;
8.步骤r1:装置判断是否扫描到蓝牙设备,是则执行步骤r2,否则继续扫描,判断扫描时间是否超时,是则重置第一定时器,跳出第一中断,否则继续执行步骤r1;
9.步骤r2:装置判断扫描到的蓝牙设备是否在蓝牙列表中,是则执行步骤r3,否则执行步骤r4;
10.步骤r3:装置获取扫描到的蓝牙设备在蓝牙列表中的索引,根据索引将对比设备状态列表中相应的第一标志位清除,重置第一定时器,跳出第一中断;
11.步骤r4:装置将扫描到的蓝牙设备添加到蓝牙列表和对比设备状态列表中,根据蓝牙列表刷新蓝牙列表显示界面,重置第一定时器,跳出第一中断;
12.当第二定时器的计时达到第二预设时间时进入第二中断,执行步骤q1至步骤q4;
13.步骤q1:装置从蓝牙列表中依次获取各个蓝牙设备对应的索引,并根据获取到的索引获取对比设备状态列表中的蓝牙设备的标志位信息;
14.步骤q2:装置判断标志位信息中的第一标志位是否存在,是则执行步骤q3,否则执行步骤q4;
15.步骤q3:装置根据索引将对应的蓝牙设备从蓝牙列表和对比设备状态列表中移除,根据蓝牙列表刷新蓝牙列表显示界面,重置第二定时器,跳出第二中断;
16.步骤q4:装置设置对比设备状态列表中相应蓝牙设备的第一标志位,重置第二定时器,跳出第二中断。
17.本发明提供了一种自动移除蓝牙列表中不可用设备的装置,包括:
18.第一初始化模块,用于初始化蓝牙列表和对比设备状态列表;
19.第一显示启动模块,用于根据蓝牙列表刷新蓝牙列表显示界面,启动第一定时器和第二定时器;
20.第一中断处理模块,用于当第一定时器的计时达到第一预设时间时,触发第一判断模块;
21.第一判断模块,用于判断是否扫描到蓝牙设备,是则触发第三判断模块,否则触发第一扫描判断模块;
22.第一扫描判断模块,用于继续扫描,判断扫描时间是否超时,是则重置第一定时器,触发第一中断处理模块,否则触发第一判断模块;
23.第三判断模块,用于判断扫描到的蓝牙设备是否在蓝牙列表中,是则触发获取清除模块,否则触发第一添加模块;
24.获取清除模块,用于获取扫描到的蓝牙设备在蓝牙列表中的索引,根据索引将对比设备状态列表中相应的第一标志位清除,重置第一定时器,触发第一中断处理模块;
25.第一添加模块,用于将扫描到的蓝牙设备添加到蓝牙列表和对比设备状态列表中,根据蓝牙列表刷新蓝牙列表显示界面,重置第一定时器,触发第一中断处理模块;
26.第一中断处理模块,还用于当检测到第二定时器的计时达到第二预设时间时,触发第一获取模块;
27.第一获取模块,用于从蓝牙列表中依次获取各个蓝牙设备对应的索引,并根据获取到的索引获取对比设备状态列表中的蓝牙设备的标志位信息;
28.第四判断模块,用于判断第一获取模块获取的标志位信息中的第一标志位是否存在,是则触发移除模块,否则触发设置模块;
29.移除模块,用于根据索引将对应的蓝牙设备从蓝牙列表和对比设备状态列表中移除,根据蓝牙列表刷新蓝牙列表显示界面,重置第二定时器,触发第一中断处理模块;
30.设置模块,用于设置对比设备状态列表中相应蓝牙设备的第一标志位,重置第二定时器,触发第一中断处理模块。
31.本发明还提供了一种自动移除蓝牙列表中不可用设备的方法,包括:
32.步骤m1:装置初始化第一蓝牙列表、第二蓝牙列表和第一计数器计数值;
33.步骤m2:装置根据第一蓝牙列表刷新蓝牙列表显示界面,启动第五定时器;
34.当第五定时器的计时达到第五预设时间时进入第五中断,执行步骤n1至步骤n8;
35.步骤n1:装置将第一计数器计数值加第三预设值的结果更新至第一计数器计数值,判断第一计数器计数值,如为第四预设值则执行步骤n2,如为第五预设值则执行步骤n3,如为第六预设值则执行步骤n4;
36.步骤n2:装置清空第二蓝牙列表,执行步骤n4;
37.步骤n3:装置将第一蓝牙列表和第二蓝牙列表进行比对,将第一蓝牙列表存在而第二蓝牙列表不存在的设备从第一蓝牙列表中移除,将第一蓝牙列表不存在而第二蓝牙列表存在的设备增加至第一蓝牙列表中,将第一计数器计数值设置成第六预设值,根据第一蓝牙列表刷新蓝牙列表显示界面,执行步骤n4;
38.步骤n4:装置判断是否扫描到蓝牙设备,是则执行步骤n5,否则继续扫描,判断扫描时间是否超时,是则重置第五定时器,跳出第五中断,否则执行步骤n4;
39.步骤n5:装置判断第一计数器计数值,如为第四预设值则执行步骤n6,如为第六预设值则执行步骤n7;
40.步骤n6:装置将扫描到的蓝牙设备添加至第二蓝牙列表中,重置第五定时器,跳出第五中断;
41.步骤n7:装置判断扫描到的蓝牙设备是否在第一蓝牙列表中,是则重置第五定时器,跳出第五中断,否则执行步骤n8;
42.步骤n8:装置将扫描到的蓝牙设备添加至第一蓝牙列表中,根据第一蓝牙列表刷新蓝牙列表显示界面,重置第五定时器,跳出第五中断。
43.本发明还提供了一种自动移除蓝牙列表中不可用设备的装置,包括:
44.第二初始化模块,用于初始化第一蓝牙列表、第二蓝牙列表和第一计数器计数值;
45.第二显示启动模块,用于根据第一蓝牙列表刷新蓝牙列表显示界面,启动第五定时器;
46.第二中断处理模块,用于当第五定时器的计时达到第五预设时间时,触发增加判断模块;
47.增加判断模块,用于将第一计数器计数值加第三预设值的结果更新至第一计数器计数值,判断第一计数器计数值,如为第四预设值则触发清空模块,如为第五预设值则触发比对刷新模块,如为第六预设值则触发第六判断模块;
48.清空模块,用于清空第二蓝牙列表,触发第六判断模块;
49.比对刷新模块,用于将第一蓝牙列表和第二蓝牙列表进行比对,将第一蓝牙列表存在而第二蓝牙列表不存在的设备从第一蓝牙列表中移除,将第一蓝牙列表不存在而第二蓝牙列表存在的设备增加至第一蓝牙列表中,将第一计数器计数值设置成第六预设值,根据第一蓝牙列表刷新蓝牙列表显示界面,触发第六判断模块;
50.第六判断模块,用于判断是否扫描到蓝牙设备,是则触发第七判断模块,否则触发第二扫描判断模块;
51.第二扫描判断模块,用于继续扫描,判断扫描时间是否超时,是则重置第五定时器,触发第二中断处理模块,否则触发第六判断模块;
52.第七判断模块,用于判断第一计数器计数值,如为第四预设值则触发第二添加模块,如为第六预设值则触发第十一判断模块;
53.第二添加模块,用于将扫描到的蓝牙设备添加至第二蓝牙列表中,重置第五定时器,触发第二中断处理模块;
54.第十一判断模块,用于判断扫描到的蓝牙设备是否在第一蓝牙列表中,是则重置第五定时器,触发第二中断处理模块,否则触发第三添加模块;
55.第三添加模块,用于将扫描到的蓝牙设备添加至第一蓝牙列表中,根据第一蓝牙列表刷新蓝牙列表显示界面,重置第五定时器,触发第二中断处理模块。
56.本发明与现有技术相比,具有以下优点:
57.本发明提供了一种自动移除蓝牙列表中不可用设备的方法及装置,实现了自动移除蓝牙列表中不可用设备,防止用户误操作,使蓝牙列表界面显示更稳定。
附图说明
58.图1为本发明实施例一提供的一种自动移除蓝牙列表中不可用设备的方法的流程图;
59.图2为本发明实施例二提供的一种自动移除蓝牙列表中不可用设备的方法的流程图;
60.图3为本发明实施例三提供的一种自动移除蓝牙列表中不可用设备的方法的流程图;
61.图4为本发明实施例四提供的一种自动移除蓝牙列表中不可用设备的方法的流程图;
62.图5为本发明实施例五提供的一种自动移除蓝牙列表中不可用设备的装置的方框图;
63.图6为本发明实施例六提供的一种自动移除蓝牙列表中不可用设备的装置的方框图。
具体实施方式
64.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
65.实施例一
66.本发明实施例一提供一种自动移除蓝牙列表中不可用设备的方法,如图1所示,包括:
67.步骤s1:装置初始化蓝牙列表和对比设备状态列表;
68.具体的,蓝牙列表中包括索引、蓝牙设备的设备名称、蓝牙设备的通用唯一识别码;对比设备状态列表中包括蓝牙设备的设备名称和标志位信息,对比设备状态列表中的标志位信息由第一标志位与索引拼接组成;
69.在本实施例中,步骤s1之前还包括:
70.步骤s0:装置检测终端的蓝牙状态,当检测到终端的蓝牙状态为开启时,执行步骤s1;
71.在本实施例中,步骤s0还包括:当检测到终端的蓝牙状态为关闭时,弹框提示并等待用户开启蓝牙,当检测到用户开启蓝牙后,执行步骤s1;
72.在本实施例中,步骤s0还包括:当检测到终端的蓝牙状态为不支持时,弹框提示不支持蓝牙;
73.步骤s2:装置根据蓝牙列表刷新蓝牙列表显示界面,启动第一定时器和第二定时器;
74.当第一定时器的计时达到第一预设时间时进入第一中断,执行步骤r1至步骤r4;
75.步骤r1:装置判断是否扫描到蓝牙设备,是则执行步骤r2,否则继续扫描,判断扫描时间是否超时,是则重置第一定时器,跳出第一中断,否则继续执行步骤r1;
76.步骤r2:装置判断扫描到的蓝牙设备是否在蓝牙列表中,是则执行步骤r3,否则执
行步骤r4;
77.在本实施例中,步骤r2具体包括:
78.装置将扫描到的蓝牙设备的通用唯一标识码与蓝牙列表中的蓝牙设备的通用唯一标识码一一进行匹配,如有匹配上的则执行步骤r3,如均未匹配上则执行步骤r4;
79.步骤r3:装置获取扫描到的蓝牙设备在蓝牙列表中的索引,根据索引将对比设备状态列表中相应的第一标志位清除,重置第一定时器,跳出第一中断;
80.在本实施例中,步骤r3具体包括:
81.装置获取扫描到的蓝牙设备在蓝牙列表中的索引,根据索引将对比设备状态列表中的标志位信息取出,将标志位信息中的第一标志位清除,重置第一定时器,跳出第一中断;
82.在本实施例中,对比设备状态列表中的标志位信息由第一标志位和索引拼接组成;
83.步骤r4:装置将扫描到的蓝牙设备添加到蓝牙列表和对比设备状态列表中,根据蓝牙列表刷新蓝牙列表显示界面,重置第一定时器,跳出第一中断;
84.在本实施例中,步骤r4具体包括:
85.装置将蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到蓝牙列表中;根据扫描到的蓝牙设备的索引生成标志位信息,将标志位信息和设备名称对应保存在对比设备状态列表中,重置第一定时器,跳出第一中断;
86.当第二定时器的计时达到第二预设时间时进入第二中断,执行步骤q1至步骤q4;
87.步骤q1:装置从蓝牙列表中依次获取各个蓝牙设备对应的索引,并根据获取到的索引获取对比设备状态列表中相应蓝牙设备的标志位信息;
88.步骤q2:装置判断标志位信息中的第一标志位是否存在,是则执行步骤q3,否则执行步骤q4;
89.步骤q3:装置根据索引将蓝牙设备从蓝牙列表和对比设备状态列表中移除,根据蓝牙列表刷新蓝牙列表显示界面,重置第二定时器,跳出第二中断;
90.步骤q4:装置设置对比设备状态列表中相应蓝牙设备的第一标志位,重置第二定时器,跳出第二中断;
91.在本实施例中,步骤s2之后还包括:
92.步骤s3:装置判断是否接收到用户触发,是则向用户触发选择的蓝牙设备发送连接请求,否则继续执行步骤s3;
93.在本实施例中,步骤s3具体包括:当装置接收到用户触发时,从蓝牙设备列表中获取用户触发选择的蓝牙设备的索引,根据索引组成连接请求,向用户触发选择的蓝牙设备发送连接请求;
94.步骤s4:装置判断蓝牙连接是否成功,是则执行步骤s5,否则报错;
95.在本实施例中,步骤s4具体包括:装置判断是否接收到系统连接成功回调,是则蓝牙连接成功,执行步骤s5,否则报错;
96.步骤s5:装置关闭第一定时器和第二定时器,从蓝牙列表显示界面跳转到第一预设界面;
97.具体的,第一预设界面是终端和蓝牙设备连接成功后跳转的界面,可以是管理工具界面或用户使用界面。
98.可选的,在本实施例中,第一预设时间小于第二预设时间。
99.实施例二
100.本发明实施例二提供一种自动移除蓝牙列表中不可用设备的方法,如图2所示,包括:
101.步骤101:装置检测终端的蓝牙状态,当检测到终端的蓝牙状态为开启时,执行步骤102;
102.具体的,装置通过调用cbcentralmanager对象的centralmanagerdidupdatestate:接口获取终端的蓝牙状态:当cbcentralmanager类中的state接收到系统中cbcentralmanagerstatepoweredon的指令,表示终端蓝牙打开;当state接收到cbcentralmanagerstatepoweredoff的指令,表示终端蓝牙关闭,弹框提示并等待用户开启蓝牙,当用户开启蓝牙后,执行步骤102;当state接收到cbcentralmanagerstateunknown的指令,表示终端状态异常;当state接收到cbcentralmanagerstateunsupported的指令,表示当前终端不支持蓝牙,弹框提示不支持蓝牙;
103.步骤102:装置初始化蓝牙列表和对比设备状态列表;
104.具体的,蓝牙列表中包括索引、设备名称、通用唯一识别码;对比设备状态列表中包括设备名称和标志位信息,对比设备状态列表中的标志位信息由第一标志位与索引拼接组成;
105.具体的,初始化蓝牙列表和对比设备状态列表都为空列表,并且将第三定时器和第四定时器设置成循环触发模式;
106.步骤103:装置根据蓝牙列表刷新蓝牙列表显示界面,启动第三定时器和第四定时器;
107.当第三定时器的计时达到第三预设时间时进入第三中断,执行步骤a1至步骤a5;
108.例如,在ios系统中,第三预设时间为1.5s,第四预设时间为3.5s;
109.例如,在android系统中,第三预设时间为6s,第四预设时间为大于6s;
110.步骤a1:装置判断是否扫描到蓝牙设备,是则执行步骤a2,否则继续扫描,判断扫描时间是否超时,是则重置第三定时器,跳出第三中断,否则执行步骤a1;
111.具体的,当装置扫描到蓝牙设备触发回调centralmanager:(cbcentralmanager*)central diddiscoverperipheral:(cbperipheral*)aperipheral advertisementdata:(nsdictionary*)advertisementdata rssi:(nsnumber*)rssi函数,执行步骤a3,否则继续扫描蓝牙设备;其中advertisementdata为扫描到的蓝牙设备携带的广播数据,rssi为蓝牙信号强度;
112.步骤a2:装置判断蓝牙列表中已存在的蓝牙设备个数是否大于第二预设值,是则执行步骤a3,否则执行步骤a5;
113.具体的,第二预设值为0;
114.具体的,装置判断蓝牙列表中已存在的蓝牙设备个数devicelist.count的值是否大于第二预设值,是则执行步骤a3,否则执行步骤a5;
115.步骤a3:装置判断扫描到的蓝牙设备的通用唯一标识码与蓝牙列表中的蓝牙设备
的通用唯一标识码是否匹配,是则执行步骤a4,否则执行步骤a5;
116.具体的,扫描到的蓝牙设备的通用唯一标识码为:
[0117]“351374b9

7320

4acb

aed2

fdb808d590ae”;
[0118]
具体的,装置将扫描到的蓝牙设备的通用唯一标识码与蓝牙列表中的蓝牙设备的通用唯一标识码一一进行匹配,如有匹配上的则执行步骤a4,如均未匹配上则执行步骤a5;
[0119]
步骤a4:装置获取扫描到的蓝牙设备在蓝牙列表中的索引,根据索引将对比设备状态列表中相应的第一标志位清除,重置第三定时器,跳出第三中断;
[0120]
具体的,对比设备状态列表如下:
[0121]
设备名称标志位信息bk_ft70520
[0122]
具体的,装置获取扫描到的蓝牙设备在蓝牙列表中的索引,根据索引将对比设备状态列表中的标志位信息取出,将标志位信息中的第一标志位清除;对比设备状态列表中的标志位信息由第一标志位和索引拼接组成;
[0123]
步骤a5:装置将扫描到的蓝牙设备添加到蓝牙列表和对比设备状态列表中,根据蓝牙列表刷新蓝牙列表显示界面,重置第三定时器,跳出第三中断;
[0124]
具体的,装置将蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到蓝牙列表中;将扫描到的蓝牙设备的索引生成标志位信息,将标志位信息和设备名称对应保存在对比设备状态列表中;
[0125]
具体的,蓝牙列表如下:
[0126]
索引设备名称通用唯一标识码0bk_ft7052351374b9

7320

4acb

aed2

fdb808d590ae
[0127]
具体的,对比设备状态列表如下:
[0128]
设备名称标志位信息bk_ft70520
[0129]
当第四定时器的计时达到第四预设时间时进入第四中断,执行步骤b1至步骤b4;
[0130]
步骤b1:装置从蓝牙列表中依次获取各个蓝牙设备对应的索引,并根据获取到的索引获取对比设备状态列表中相应蓝牙设备的标志位信息;
[0131]
步骤b2:装置判断标志位信息中的第一标志位是否存在,是则执行步骤b3,否则执行步骤b4;
[0132]
具体的,装置判断第一标志位是否为

1,如果是则第一标志位存在,执行步骤b3,否则执行步骤b4;
[0133]
步骤b3:装置根据索引将蓝牙设备从蓝牙列表和对比设备状态列表中移除,根据蓝牙列表刷新蓝牙列表显示界面,重置第四定时器,跳出第四中断;
[0134]
步骤b4:装置设置对比设备状态列表中相应蓝牙设备的第一标志位,重置第四定时器,跳出第四中断。
[0135]
具体的,装置将对比设备状态列表中相应蓝牙设备的第一标志位设为

1。
[0136]
具体的,对比设备状态列表如下:
[0137][0138][0139]
步骤104:装置判断是否接收到用户触发,是则获取用户触发选择的蓝牙设备的索引,根据索引组成连接请求,向用户触发选择的蓝牙设备发送连接请求,执行步骤105,否则继续执行步骤104;
[0140]
步骤105:装置判断蓝牙连接是否成功,是则执行步骤106,否则报错;
[0141]
具体的,装置判断是否接收到系统连接成功回调,是则连接成功,执行步骤106,否则报错;
[0142]
步骤106:装置关闭第三定时器和第四定时器,从蓝牙列表显示界面跳转到第二预设界面;
[0143]
具体的,第二预设界面是终端和蓝牙设备连接成功后跳转的界面,可以是管理工具界面或用户使用界面。
[0144]
实施例三
[0145]
本发明实施例三提供一种自动移除蓝牙列表中不可用设备的方法,如图3所示,包括:
[0146]
步骤m1:装置初始化第一蓝牙列表、第二蓝牙列表和第一计数器计数值;
[0147]
在本实施例中,步骤m1之前还包括:
[0148]
步骤m0:装置检测终端的蓝牙状态,当检测到终端的蓝牙状态为开启时,执行步骤m1;
[0149]
在本实施例中,步骤m0还包括:当检测到终端的蓝牙状态为关闭时,弹框提示并等待用户开启蓝牙,当检测到用户开启蓝牙后,执行步骤m1;
[0150]
在本实施例中,步骤m0还包括:当检测到终端的蓝牙状态为不支持时,弹框提示不支持蓝牙;
[0151]
步骤m2:装置根据第一蓝牙列表刷新蓝牙列表显示界面,启动第五定时器;
[0152]
当第五定时器的计时达到第五预设时间时进入第五中断,执行步骤n1至步骤n8;
[0153]
步骤n1:装置将第一计数器计数值加第三预设值的结果更新至第一计数器计数值,判断第一计数器计数值,如为第四预设值则执行步骤n2,如为第五预设值则执行步骤n3,如为第六预设值则执行步骤n4;
[0154]
步骤n2:装置清空第二蓝牙列表,执行步骤n4;
[0155]
步骤n3:装置将第一蓝牙列表和第二蓝牙列表进行比对,将第一蓝牙列表存在而第二蓝牙列表不存在的设备从第一蓝牙列表中移除,将第一蓝牙列表不存在而第二蓝牙列表存在的设备增加至第一蓝牙列表中,将第一计数器计数值设置成第六预设值,根据第一蓝牙列表刷新蓝牙列表显示界面,执行步骤n4;
[0156]
步骤n4:装置判断是否扫描到蓝牙设备,是则执行步骤n5,否则继续扫描,判断扫描时间是否超时,是则重置第五定时器,跳出第五中断,否则执行步骤n4;
[0157]
步骤n5:装置判断第一计数器计数值,如为第四预设值则执行步骤n6,如为第六预
设值则执行步骤n7;
[0158]
步骤n6:装置将扫描到的蓝牙设备添加至第二蓝牙列表中,重置第五定时器,跳出第五中断;
[0159]
具体的,装置将第二蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到第二蓝牙列表中,重置第五定时器,跳出第五中断;
[0160]
步骤n7:装置判断扫描到的蓝牙设备是否在第一蓝牙列表中,是则重置第五定时器,跳出第五中断,否则执行步骤n8;
[0161]
在本实施例中,步骤n7具体包括:装置将扫描到的蓝牙设备的通用唯一标识码与第一蓝牙列表中的蓝牙设备的通用唯一标识码一一进行匹配,如果返回值为存在则重置第五定时器,跳出第五中断,如果返回值为不存在则执行步骤n8;
[0162]
步骤n8:装置将扫描到的蓝牙设备添加至第一蓝牙列表中,根据第一蓝牙列表刷新蓝牙列表显示界面,重置第五定时器,跳出第五中断;
[0163]
具体的,装置将第一蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到第一蓝牙列表中,重置第五定时器,跳出第五中断;
[0164]
在本实施例中,步骤m2之后还包括:
[0165]
步骤m3:装置判断是否接收到用户触发,是则向选择的蓝牙设备发送连接请求,执行步骤m4,否则继续执行步骤m3;
[0166]
在本实施例中,步骤m3具体包括:装置当接收到用户触发时,从蓝牙设备列表中获取用户触发选择的蓝牙设备的索引,根据索引组成连接请求,向用户触发选择的蓝牙设备发送连接请求;
[0167]
步骤m4:装置判断蓝牙连接是否成功,是则执行步骤m5,否则报错;
[0168]
在本实施例中,步骤m4具体包括:装置判断是否接收到系统连接成功回调,是则蓝牙连接成功,执行步骤m5,否则报错;
[0169]
步骤m5:装置关闭第五定时器,从蓝牙列表显示界面跳转到第三预设界面;
[0170]
具体的,第三预设界面是终端和蓝牙设备连接成功后跳转的界面,可以是管理工具界面或用户使用界面。
[0171]
实施例四
[0172]
本发明实施例四提供一种自动移除蓝牙列表中不可用设备的方法,如图4所示,包括:
[0173]
步骤201:装置检测终端的蓝牙状态,当检测到终端的蓝牙状态为开启时,执行步骤202;
[0174]
具体的,装置通过调用cbcentralmanager对象的centralmanagerdidupdatestate:接口获取终端的蓝牙状态:当cbcentralmanager类中的state接收到系统中cbcentralmanagerstatepoweredon的指令,表示终端蓝牙打开;当state接收到cbcentralmanagerstatepoweredoff的指令,表示终端蓝牙关闭,弹框提示并等待用户开启蓝牙,当用户开启蓝牙后,执行步骤202;当state接收到cbcentralmanagerstateunknown的指令,表示终端状态异常;当state接收到cbcentralma
nagerstateunsupported的指令,表示当前终端不支持蓝牙,弹框提示不支持蓝牙;
[0175]
步骤202:装置初始化第三蓝牙列表、第四蓝牙列表和第二计数器计数值;
[0176]
具体的,第三蓝牙列表、第四蓝牙列表中包括索引、设备名称、通用唯一识别码;
[0177]
具体的,初始化使第三蓝牙列表和第四蓝牙列表都为空列表,并且将第六定时器设置成循环触发模式,将第二计数器计数值设置为零;
[0178]
步骤203:装置根据第三蓝牙列表刷新蓝牙列表显示界面,启动第六定时器;
[0179]
当第六定时器的计时达到第六预设时间时进入第六中断,执行步骤e1至步骤e11;
[0180]
例如,ios系统中,第六预设时间为1.5s;
[0181]
例如,android系统中,第六预设时间为6s;
[0182]
步骤e1:装置将第二计数器计数值加第七预设值的结果更新至第二计数器计数值,判断第二计数器计数值,如为第八预设值则执行步骤e2,如为第九预设值则执行步骤e3,如为第十预设值则执行步骤e4;
[0183]
具体的,第七预设值为1,第八预设值为2,第九预设值为3,第十预设值为1;
[0184]
步骤e2:装置清空第四蓝牙列表,执行步骤e4;
[0185]
步骤e3:装置将第三蓝牙列表和第四蓝牙列表进行比对,将第三蓝牙列表存在而第四蓝牙列表不存在的设备从第三蓝牙列表中移除,将第三蓝牙列表不存在而第四蓝牙列表存在的设备增加至第三蓝牙列表中,将第二计数器计数值设置成第十预设值,根据第三蓝牙列表刷新蓝牙列表显示界面,执行步骤e4;
[0186]
具体的,第三蓝牙列表为:
[0187]
索引设备名称通用唯一识别码0bk_ft_7052351374b9

7320

4acb

aed2

fdb808d590ae1bk_ft7055352674b9

7320

4aeb

aed2

fdb808d590af
[0188]
步骤e4:装置判断是否扫描到蓝牙设备,是则执行步骤e5,否则继续扫描,判断扫描时间是否超时,是则重置第六定时器,跳出第六中断,否则继续执行步骤e4;
[0189]
具体的,当装置扫描到蓝牙设备触发回调centralmanager:(cbcentralmanager*)central diddiscoverperipheral:(cbperipheral*)aperipheral advertisementdata:(nsdictionary*)advertisementdata rssi:(nsnumber*)rssi函数,执行步骤e5,否则继续扫描蓝牙设备;其中advertisementdata为扫描到的蓝牙设备携带的广播数据,rssi为蓝牙信号强度;
[0190]
步骤e5:装置判断第二计数器计数值,如为第八预设值则执行步骤e6,如为第十预设值则执行步骤e9;
[0191]
步骤e6:装置判断第四蓝牙列表中是否存在蓝牙设备,是则执行步骤e7,否则执行步骤e8;
[0192]
步骤e7:装置判断扫描到的蓝牙设备的通用唯一标识码与第四蓝牙列表中的蓝牙设备的通用唯一标识码是否匹配,是则将扫描到的蓝牙设备替换至第四蓝牙列表中,重置第六定时器,跳出第六中断;
[0193]
步骤e8:装置将扫描到的蓝牙设备添加至第四蓝牙列表中,重置第六定时器,跳出第六中断;
[0194]
具体的,装置将第四蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索
引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到第四蓝牙列表中;
[0195]
具体的,第四蓝牙列表为:
[0196]
索引设备名称通用唯一识别码0bk_ft_7052351374b9

7320

4acb

aed2

fdb808d590ae1bk_ft7055352674b9

7320

4aeb

aed2

fdb808d590af
[0197]
步骤e9:装置判断第三蓝牙列表中是否存在蓝牙设备,是则执行步骤e10,否则执行步骤e11;
[0198]
步骤e10:装置判断扫描到的蓝牙设备的通用唯一标识码与第三蓝牙列表中的蓝牙设备的通用唯一标识码是否匹配,是则将扫描到的蓝牙设备替换至第三蓝牙列表中,重置第六定时器,跳出第六中断,否则执行步骤e11;
[0199]
具体的,装置将扫描到的蓝牙设备的通用唯一标识码与第三蓝牙列表中的蓝牙设备的通用唯一标识码一一进行匹配,如有匹配上的则将扫描到的蓝牙设备替换至第三蓝牙列表中,重置第六定时器,跳出第六中断,如均未匹配上则执行步骤e11;
[0200]
步骤e11:装置将扫描到的蓝牙设备添加至第三蓝牙列表中,根据第三蓝牙列表刷新蓝牙列表显示界面,重置第六定时器,跳出第六中断;
[0201]
具体的,装置将第三蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到第三蓝牙列表中;
[0202]
具体的,第三蓝牙列表为:
[0203]
索引设备名称通用唯一识别码0bk_ft_7052351374b9

7320

4acb

aed2

fdb808d590ae
[0204]
步骤204:装置判断是否接收到用户触发,是则获取用户触发选择的蓝牙设备的索引,根据索引组成连接请求,向用户触发选择的蓝牙设备发送连接请求,执行步骤205,否则继续执行步骤204;
[0205]
步骤205:装置判断蓝牙连接是否成功,是则执行步骤206,否则报错;
[0206]
具体的,装置判断是否接收到系统连接成功回调,是则连接成功,执行步骤206,否则报错;
[0207]
步骤206:装置关闭第六定时器,从蓝牙列表显示界面跳转到第四预设界面;
[0208]
具体的,第四预设界面是终端和蓝牙设备连接成功后跳转的界面,可以是管理工具界面或用户使用界面。
[0209]
实施例五
[0210]
本发明实施例五提供一种自动移除蓝牙列表中不可用设备的装置,如图5所示,包括:
[0211]
第一初始化模块11,用于初始化蓝牙列表和对比设备状态列表;
[0212]
第一显示启动模块12,用于根据蓝牙列表刷新蓝牙列表显示界面,启动第一定时器和第二定时器;
[0213]
第一中断处理模块13,用于当第一定时器的计时达到第一预设时间时,触发第一判断模块14;
[0214]
第一判断模块14,用于判断是否扫描到蓝牙设备,是则触发第三判断模块16,否则触发第一扫描判断模块15;
[0215]
第一扫描判断模块15,用于继续扫描,判断扫描时间是否超时,是则重置第一定时器,触发第一中断处理模块13,否则触发第一判断模块14;
[0216]
第三判断模块16,用于判断扫描到的蓝牙设备是否在蓝牙列表中,是则触发获取清除模块17,否则触发第一添加模块18;
[0217]
获取清除模块17,用于获取扫描到的蓝牙设备在蓝牙列表中的索引,根据索引将对比设备状态列表中相应的第一标志位清除,重置第一定时器,触发第一中断处理模块13;
[0218]
第一添加模块18,用于将扫描到的蓝牙设备添加到蓝牙列表和对比设备状态列表中,根据蓝牙列表刷新蓝牙列表显示界面,重置第一定时器,触发第一中断处理模块13;
[0219]
第一中断处理模块13,还用于当第二定时器的计时达到第二预设时间时,触发第一获取模块19;
[0220]
第一获取模块19,用于从蓝牙列表中依次获取各个蓝牙设备对应的索引,并根据获取到的索引获取对比设备状态列表中的蓝牙设备的标志位信息;
[0221]
第四判断模块20,用于判断第一获取模块19获取的标志位信息中的第一标志位是否存在,是则触发移除模块21,否则触发设置模块22;
[0222]
移除模块21,用于根据索引将对应的蓝牙设备从蓝牙列表和对比设备状态列表中移除,根据蓝牙列表刷新蓝牙列表显示界面,重置第二定时器,触发第一中断处理模块13;
[0223]
设置模块22,用于设置对比设备状态列表中相应蓝牙设备的第一标志位,重置第二定时器,触发第一中断处理模块13。
[0224]
可选的,在本实施例中,还包括:
[0225]
第二检测模块,用于检测终端的蓝牙状态,当检测到终端的蓝牙状态为开启时,触发第一初始化模块。
[0226]
可选的,在本实施例中,第二检测模块,还用于当检测到终端的蓝牙状态为关闭时,弹框提示并等待用户开启蓝牙,当用户开启蓝牙后,触发第一初始化模块。
[0227]
可选的,在本实施例中,第二检测模块,还用于当检测到终端的蓝牙状态为不支持时,弹框提示不支持蓝牙。
[0228]
可选的,在本实施例中,第三判断模块16,具体用于将扫描到的蓝牙设备的通用唯一标识码与蓝牙列表中的蓝牙设备的通用唯一标识码一一进行匹配,如有匹配上的则触发获取清除模块,如均未匹配上则触发第一添加模块。
[0229]
可选的,在本实施例中,第一添加模块18,具体用于将蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到蓝牙列表中;根据扫描到的蓝牙设备的索引生成标志位信息,将标志位信息和设备名称对应保存在对比设备状态列表中。
[0230]
可选的,在本实施例中,还包括:
[0231]
第十三判断模块,用于判断是否接收到用户触发,是则触发第一发送模块,否则触发第十三判断模块;
[0232]
第一发送模块,用于向用户触发选择的蓝牙设备发送连接请求;
[0233]
第五判断模块,用于判断蓝牙连接是否成功,是则触发第一关闭跳转模块,否则报错;
[0234]
第一关闭跳转模块,用于关闭第一定时器和第二定时器,从蓝牙列表显示界面跳
转到第一预设界面。
[0235]
可选的,在本实施例中,第一发送模块,具体用于当装置接收到用户触发时,从蓝牙设备列表中获取用户触发选择的蓝牙设备的索引,根据索引组成连接请求,向用户触发选择的蓝牙设备发送连接请求。
[0236]
可选的,在本实施例中,第五判断模块,具体用于判断是否接收到系统连接成功回调则蓝牙连接成功,是则触发第一关闭跳转模块,否则报错。
[0237]
可选的,在本实施例中,第一预设时间小于第二预设时间。
[0238]
实施例六
[0239]
本发明实施例六提供一种自动移除蓝牙列表中不可用设备的装置,如图6所示,包括:
[0240]
第二初始化模块111,用于初始化第一蓝牙列表、第二蓝牙列表和第一计数器计数值;
[0241]
第二显示启动模块112,用于根据第一蓝牙列表刷新蓝牙列表显示界面,启动第五定时器;
[0242]
第二中断处理模块113,用于当第五定时器的计时达到第五预设时间时,触发增加判断模块114;
[0243]
增加判断模块114,用于将第一计数器计数值加第三预设值的结果更新至第一计数器计数值,判断第一计数器计数值,如为第四预设值则触发清空模块115,如为第五预设值则触发比对刷新模块116,如为第六预设值则触发第六判断模块117;
[0244]
清空模块115,用于清空第二蓝牙列表,触发第六判断模块117;
[0245]
比对刷新模块116,用于将第一蓝牙列表和第二蓝牙列表进行比对,将第一蓝牙列表存在第二蓝牙列表不存在的设备从第一蓝牙列表中移除,将第一蓝牙列表不存在第二蓝牙列表存在的设备增加至第一蓝牙列表中,将第一计数器计数值设置成第六预设值,根据第一蓝牙列表刷新蓝牙列表显示界面,触发第六判断模块117;
[0246]
第六判断模块117,用于判断是否扫描到蓝牙设备,是则触发第七判断模块118,否则触发第二扫描判断模块119;
[0247]
第七判断模块118,用于判断第一计数器计数值,如为第四预设值则触发第二添加模块120,如为第六预设值则触发第十一判断模块121;
[0248]
第二扫描判断模块119,用于继续扫描,判断扫描时间是否超时,是则重置第五定时器,触发第二中断处理模块,否则触发第六判断模块117;
[0249]
第二添加模块120,用于将扫描到的蓝牙设备添加至第二蓝牙列表中,重置第五定时器,触发第二中断处理模块113;
[0250]
第十一判断模块121,用于判断扫描到的蓝牙设备是否在第一蓝牙列表中,是则重置第五定时器,触发第二中断处理模块113,否则触发第三添加模块122;
[0251]
第三添加模块122,用于将扫描到的蓝牙设备添加至第一蓝牙列表中,根据第一蓝牙列表刷新蓝牙列表显示界面,重置第五定时器,触发第二中断处理模块113。
[0252]
可选的,在本实施例中,还包括:
[0253]
第四检测模块,用于检测终端的蓝牙状态,当检测到终端的蓝牙状态为开启时,触发第二初始化模块。
[0254]
可选的,在本实施例中,第四检测模块,还用于当检测到终端的蓝牙状态为关闭时,弹框提示并等待用户开启蓝牙,当检测到用户开启蓝牙后,触发第二初始化模块。
[0255]
可选的,在本实施例中,第四检测模块,还用于当检测到终端的蓝牙状态为不支持时,弹框提示不支持蓝牙。
[0256]
可选的,在本实施例中,第二添加模块120,具体用于将第二蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到第二蓝牙列表中,重置第五定时器,触发第二中断处理模块113。
[0257]
可选的,在本实施例中,第十一判断模块121,具体用于将扫描到的蓝牙设备的通用唯一标识码与第一蓝牙列表中的蓝牙设备的通用唯一标识码一一进行匹配,如有匹配上的则重置第五定时器,触发第二中断处理模块113,如均未匹配上则触发第三添加模块。
[0258]
可选的,在本实施例中,第三添加模块,具体用于将第一蓝牙列表中的蓝牙设备个数减1作为扫描到的蓝牙设备的索引,将扫描到的蓝牙设备的索引、设备名称、通用唯一标识码对应保存到第一蓝牙列表中。
[0259]
可选的,在本实施例中,还包括:
[0260]
第十四判断模块,用于判断是否接收到用户触发,是则触发第二发送模块,否则触发第十四判断模块;
[0261]
第二发送模块,用于向用户触发选择的蓝牙设备发送连接请求;
[0262]
第十二判断模块,用于判断蓝牙连接是否成功,是则触发第二关闭跳转模块,否则报错;
[0263]
第二关闭跳转模块,用于关闭第五定时器,从蓝牙列表显示界面跳转到第三预设界面。
[0264]
可选的,在本实施例中,第二发送模块,具体用于从第一蓝牙列表中获取用户触发选择的蓝牙设备的索引,根据索引组成连接请求,向用户触发选择的蓝牙设备发送连接请求。
[0265]
可选的,在本实施例中,第十二判断模块,具体用于判断是否接收到系统连接成功回调,是则蓝牙连接成功,触发第二关闭跳转模块,否则报错。
[0266]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1