Android BLE应用如何劫持操作系统配对过程

时间:2016-07-19 14:50:29

标签: android bluetooth bluetooth-lowenergy pairing

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

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

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是否允许两个应用程序(OS蓝牙管理器和我的应用程序)在单个连接会话中写入远程gatt?

1 个答案:

答案 0 :(得分:1)

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

  

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

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

  

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

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