Lon*_*gVo 4 android bluetooth-lowenergy
我正在使用BLE Api(SDK 18)在Android上实现一个应用程序,我有一个问题,即传输数据进程延迟非常慢.这是我的日志.
03-12 16:20:05.121:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:06.272:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
03-12 16:20:06.972:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:08.254:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
03-12 16:20:10.055:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:11.257:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
03-12 16:20:12.478:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:14.250:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
03-12 16:20:14.960:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:16.242:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
03-12 16:20:16.402:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:20.225:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
03-12 16:20:20.526:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:24.219:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
03-12 16:20:25.360:D/BluetoothGatt(13578):writeCharacteristic() - uuid:...
03-12 16:20:27.222:D/BluetoothGatt(13578):onCharacteristicWrite() - Device = ... UUID = ... Status = 0
有关更多信息,我发现每个Transfer Progress只有在具有onCharacteristicWrite回调时才会完成,这意味着在接收onCharacteristicWrite回调之前所有发送命令都将被忽略.
这是我们必须遵循的Android流程还是有任何方法来设置它跳过回调步骤以加快进度.
我的代码是:
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
......
@Override
public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
mSending = false;
}
};
private void writeCharacteristic() {
.....
mGattCharacSetIntensity.setValue(data);
mGattCharacSetIntensity.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);
mBluetoothGatt.writeCharacteristic(mGattCharacSetIntensity);
return;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我与iPhone(来自AppStore的BLE传输数据应用程序)进行了比较,BLE传输数据非常快(小于0.5秒),令人印象深刻.我们如何解决Android BLE转移进度?
编辑:如果我将BluetoothGattCharacteristic的WriteType设置为WRITE_TYPE_NO_RESPONSE,并且当我按顺序发送许多命令时,Android会将它们存储在队列中并在收到writeCharacteristic CallBack后逐个发送到远程设备,这会导致出现问题,当您停止发送时lood,Android发送进度仍然延迟(有时超过3秒).
| 归档时间: |
|
| 查看次数: |
10112 次 |
| 最近记录: |