蓝牙所描startLEScan记录
需求:
蓝牙扫描需要过来服务
分别是扫描心率服务和c2划船机服务
uuid分别为
UUID[] heartUUID = new UUID[]{
UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb")
};
UUID[] c2RowUUID = new UUID[]{
UUID.fromString("CE060000-43E5-11E4-916C-0800200C9A66")
};
定义uuid数组2个
UUID[] myUUID3 = new UUID[]{
UUID.fromString("CE060000-43E5-11E4-916C-0800200C9A66"),
UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb")
};
UUID[] myUUID4 = new UUID[]{
UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"),
UUID.fromString("CE060000-43E5-11E4-916C-0800200C9A66")
};
callback 为扫描回调 BluetoothAdapter.LeScanCallback
callback2 定义个第二个心率回调 和 方法callback一样只是方法名不同
开始测试
测试一
扫描心率服务
mBluetoothAdapter.startLeScan(heartUUID,callback);
结果
正常,可以扫描到心率设备
测试二
扫描c2划船机服务
mBluetoothAdapter.startLeScan(c2RowUUID,callback);
结果
正常,可以扫描到c2划船机蓝牙
测试三
描述:心率服务在前,划船机服务在后
mBluetoothAdapter.startLeScan(myUUID3,callback);
结果
开启扫描后无任何反应
测试四
描述:划船机服务在前,心率服务在后
mBluetoothAdapter.startLeScan(myUUID4,callback);
结果
开启扫描后报错 BluetoothAdapter: uuids does not match
测试五
描述:调用两次扫描同一个回调函数
mBluetoothAdapter.startLeScan(heartUUID,callback);
mBluetoothAdapter.startLeScan(c2RowUUID,callback);
结果
后设置 划船机服务起作用扫描到 划船机服务
测试六
描述:调用两次扫描,不同的回调函数
mBluetoothAdapter.startLeScan(heartUUID,callback);
mBluetoothAdapter.startLeScan(c2RowUUID,callback1);
结果
满足需求描述能返回两个服务扫描的设备
总结
startLeScan 这个方法不知道为什么uuid数组不起作用,求正解