来自BLE112的状态代码132和133

时间:2014-05-20 14:16:15

标签: android bluetooth-lowenergy

我正在编写一个Android应用程序,使用Android 4.4.2套件中的本机蓝牙库与我的BLE112设备进行通信。

大多数时候,我的特色阅读永远不会回来。当设备关闭时,我得到小数133状态,这可能意味着设备关闭。

但有时,我的所有读数都会得到小数132。我想知道在哪里可以找到这些代码。我从bluegiga中提取了文档,但是在这个范围内没有任何错误代码。

2 个答案:

答案 0 :(得分:1)

希望这有帮助

https://stackoverflow.com/a/41718665/911389

GATT_INTERNAL_ERROR 0x0081(129)

GATT_WRONG_STATE 0x0082(130)

GATT_DB_FULL 0x0083(131)

GATT_BUSY 0x0084(132)

GATT_ERROR 0x0085(133)

投票振作起来:)

答案 1 :(得分:0)

我的问题是由时间问题引起的。在设备完全配对之前,我实际上正在阅读这个特性。为了解决这个问题,我在开始连接设备时添加了一个IntentFilter:

    IntentFilter filterScan = new IntentFilter();
    filterScan.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
    bluetoothReceiver = new BluetoothReceiver();
    context.registerReceiver(bluetoothReceiver, filterScan);

然后在结束时取消注册:

    if(bluetoothReceiver != null) {
        context.unregisterReceiver(bluetoothReceiver);
        bluetoothReceiver = null;
    }

这是接收者:

private class BluetoothReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        BluetoothDevice deviceIn = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

        if (deviceIn != null) {
            if (deviceIn.equals(device)) {
                if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(action)) {
                    int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.BOND_NONE);
                    if(bondState == BluetoothDevice.BOND_BONDED){
                        //now start reading
                    }
                }
            }
        }
    }
}

希望这有帮助。