Я изменил код Android-чата Bluetooth, чтобы байты, полученные от службы BluetoothChatService, отправлялись непосредственно в активность BluetoothChat.
Скорость отправки другого устройства Bluetooth составляет 125 кГц, каждый пакет - 20 байт.
Таким образом, будет около 125 * 20 байт в секунду, которые должны быть получены службой, а затем отправлены в действие.
Однако я обнаружил, что в данных, полученных в Деятельности, будет потеря пакетов. Я проверил, что данные, полученные в Сервисе, действительно верны.
Это часть кода, которая отправляет 20-байтовый объект в Activity.
mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, 20, -1, buffer)
.sendToTarget();
Это обработчик, который возвращает сообщение от BluetoothChatService
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
...}
}
Есть идеи, как решить эту проблему? Спасибо.