0

我正在使用 BLE 设备,它需要在配对期间设置设备时间。在任何其他时间写入时间特性都不会有效地设置时间。

目前我正在使用安卓操作系统的蓝牙管理器进行配对。并且通过广播意图将配对进度通知给我的应用程序。

public void onReceive(Context context, Intent intent) {
    ....
    switch (action) {
    case BluetoothDevice.ACTION_BOND_STATE_CHANGED: 
        if(state == BluetoothDevice.BOND_BONDED){
            //Write to the Date-Time Characteristic
        }
        else if(state==BluetoothDevice.BOND_BONDING){
        }
        else if(state==BluetoothDevice.BONE_NONE){
        }
     ....
     }
     ...
    }

我的问题是如何将代码注入到上面注释的位置以完成日期时间设置?显然,Android OS 蓝牙管理器并没有在其整个配对过程中设置时间。Android 是否允许两个应用程序(操作系统蓝牙管理器和我的应用程序)在单个连接会话中写入远程 gatt?

4

1 回答 1

1

您可能无法在配对过程中写入数据时间,即特征(如果您不需要配对,那应该没问题)。原因是你可能先得到服务,得到特征句柄,然后再写,这可能不会在配对的同时发生;这取决于您的远程设备的安全级别设置。

我的问题是如何将代码注入到上面注释的位置以完成日期时间设置?

您可以注册一个广播接收器来接收绑定事件。

Android 是否允许两个应用程序(操作系统蓝牙管理器和我的应用程序)在单个连接会话中写入远程 gatt?

当然,因为您使用的是相同的 BluetoothAdapter :-)

于 2016-07-21T09:34:22.837 回答