如何检测连接的BLE设备何时更改其名称?

时间:2017-08-30 08:22:34

标签: java android bluetooth bluetooth-lowenergy

我正在使用蓝牙低功耗与电子卡交换数据。在数据交换期间,卡有时可以将其设备名称更改为新设备名称,我正在查看修改此名称的方法。

我在开始时连接到设备时存储了此设备的名称和MAC地址,但似乎android没有看到设备名称发生了变化。实际上,当我尝试读取名称时,它会返回旧名称而不是新名称。

这个例子在与电子卡的每次数据交换时被调用,并且每次,它都会返回旧名称,即使在卡更改其名称后:

        BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
        List<BluetoothDevice> devices = bluetoothManager.getConnectedDevices(BluetoothProfile.GATT);
        for(BluetoothDevice device : devices) {
            Log.i("BLE_device_name : ",device.getName());
        }

有没有听众呢?或者强制Android获取真实BLE名称而非记忆名称的方法?

我看到的唯一解决方案是进行新的蓝牙扫描,但这对我的过程来说太长了。

谢谢

1 个答案:

答案 0 :(得分:0)

如果您没有连接,您可以发出扫描并检查广告数据名称是什么(如果包含)。

如果已连接,则可以阅读包含名称的GATT特征。