gpt4 book ai didi

android - 使用低功耗蓝牙写入

转载 作者:搜寻专家 更新时间:2023-11-01 08:54:13 26 4
gpt4 key购买 nike

我正在开发一款使用 BLE 的 Android 应用。我想在我连接的设备服务的特性中写入。

我的功能是这样的:

public void writeCharacteristic(BluetoothGattCharacteristic characteristic,
boolean enabled, String text) {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}


characteristic.setValue("7");

boolean status = mBluetoothGatt.writeCharacteristic(characteristic);


}

我不明白为什么这个值没有写在特性里面。我按照此链接中的步骤操作: write with BLE

有人知道为什么我的代码不起作用吗?

非常感谢。问候

PD为我的英语道歉。

最佳答案

也许您的特性接受一个byte[]值。尝试通过将 String 参数转换为 byte[] 来设置字节数组的 characteristic 值。你的方法应该是这样的:

public void writeCharacteristic(BluetoothGattCharacteristic characteristic,
String text) {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
byte[] data = hexStringToByteArray(text);

characteristic.setValue(data);

boolean status = mBluetoothGatt.writeCharacteristic(characteristic);
}

private byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character
.digit(s.charAt(i + 1), 16));
}
return data;
}

另请注意,如果写入操作启动成功,status 变量返回true。因此,为了获得写入操作结果状态,请使用 onCharacteristicWrite callback BluetoothGattCallback 并检查其中的状态。

关于android - 使用低功耗蓝牙写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com