我正在编写一个Android应用程序,使用Android 4.4.2套件中的本机蓝牙库与我的BLE112设备进行通信。
大多数时候,我的特色阅读永远不会回来。当设备关闭时,我得到小数133状态,这可能意味着设备关闭。
但有时,我的所有读数都会得到小数132。我想知道在哪里可以找到这些代码。我从bluegiga中提取了文档,但是在这个范围内没有任何错误代码。
答案 0 :(得分:1)
希望这有帮助
https://stackoverflow.com/a/41718665/911389
投票振作起来:)
答案 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
}
}
}
}
}
}
希望这有帮助。