繁体   English   中英

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

[英]How to detect when a connected BLE device change its name?

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

当我开始连接到设备时,我会存储该设备的名称和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名称而不是已记忆名称的方法?

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

谢谢

如果未连接,则可以进行扫描并检查广告数据的名称(如果包含)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM