Android中的BLE开发:蓝牙扫描设备二

上一篇:Android中的BLE开发:蓝牙扫描设备一_今人不见古时月,今月曾经照古人的博客-CSDN博客

看官们,我们在上一章回中介绍了BLE开发中蓝牙扫描设备的例子,本章回中我们继续介绍该例子,闲话休提,言归正转。让我们一起Talk Android吧!

看官们,BluetoothAdapter的startLeScan方法是一个重载方法,具体如下:

public boolean startLeScan(LeScanCallback callback) ;
public boolean startLeScan(final UUID[] serviceUuids, final LeScanCallback callback) ;

在上一章回中我们使用的是只有一个参数的方法,本章回中我们介绍拥有两个参数的方法。如果我们查看一个它们的源代码就会发现,本质上它们是一个方法,因为一个参数的方法调用了两个参数的方法,两个参数的方法真正实现了扫描功能,具体代码如下:

public boolean startLeScan(LeScanCallback callback) {
       return startLeScan(null, callback);
   }

这个也给了我们启发:在代码中直接使用有两个参数的startLeScan方法就可以,如果不想使用它的第一个参数,直接设置为空就可以。

有看官提问,既然这个参数可以为空,那么设计它有什么作用?回答这个问题就涉及到了UUID.UUID用来区分蓝牙设备类型的,Bluetooth SIG为不同类型的蓝牙设备定义了不同的UUID。大家可以参考官方对UUID的介绍,我在这里不做详细介绍。如果使用了特定的UUID进行扫描,那么就可以扫描到与UUID匹配的蓝牙设备,或者说扫描到了符合某种类型的蓝牙设备。在实际的项目中,蓝牙设备厂商会提供UUID。使用UUID进行扫描缩短了扫描时间,而且过滤掉了不符合条件的蓝牙设备。现在大家明白了吧,UUID这个参数就是用来做过滤的,它可以看作是一个过滤器。

各位看官,关于Android中蓝牙扫描设备的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

转载于:第二百八十二回:Android中的BLE开发:蓝牙扫描设备二 - 知乎

猜你喜欢

转载自blog.csdn.net/weixin_42602900/article/details/125987940