蓝牙扫描startLeScan测试

蓝牙所描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数组不起作用,求正解

你可能感兴趣的:(思考)