Что-то изменилось между Android 13 и Android 14, что вызывает эту проблему.
В своей библиотеке я сканирую устройство BLE и подключаюсь к нему.
Во время обратного вызова библиотеки из ОС Android у меня есть следующий код:
Код: Выделить всё
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
androidBluetoothLog("onConnectionStateChange");
String deviceAddress = gatt.getDevice().getAddress();
if (newState == BluetoothProfile.STATE_CONNECTED) {
removeConnectingDevice(deviceAddress, false);
// start discovering services
gatt.discoverServices();
} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
removeConnectingDevice(deviceAddress, false);
gatt.close();
}
}
Мой onServicesDiscovered выглядит следующим образом:
Код: Выделить всё
@Override
// New services discovered
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
androidBluetoothLog("Services Discovered");
List services = gatt.getServices();
if (services != null) {
androidBluetoothLog("Service Count: " + services.size());
String deviceAddress = gatt.getDevice().getAddress();
for (BluetoothGattService service : services) {
List characteristics = service.getCharacteristics();
for (BluetoothGattCharacteristic characteristic : characteristics) {
androidBluetoothLog("Characteristic found");
}
}
}
} else {
androidBluetoothLog("Error~Service Discovery " + status);
}
}
Когда я запускаю тот же код на Android 14, количество служб всегда равно 0.
Я пробовал добавлять задержки тут и там с помощью режима сна, но, похоже, ничего не помогает.
Что изменилось между Android 13 и Android 14, что могло вызвать это?>
Подробнее здесь: https://stackoverflow.com/questions/775 ... very-issue
Мобильная версия