Я создаю приложение для Android, чтобы осуществлять платежи BLE (бесконтактные платежи).У меня есть два приложения для создания: одно будет играть роль сервера gatt (реклама и предоставление услуг с характеристиками), а другое - сканировать рекламные устройства, подключиться к первому и запустить запрос.
Моя проблема в том, что когда я вызываю connectGatt на объекте моего отсканированного устройства, через 40 секунд я получаю обратный вызов с STATE_DISCONNECTED и статусом 133.
Я много исследовал этот форум и другие, и в начале явозникла проблема с приложением сканирования, со всеми известными проблемами (добавление задержки перед вызовом connectGatt () / выполнение вызовов в основном потоке ...)
Но, наконец, я использовал свое приложение сканирования с приложением BLE для тестирования периферийных устройствнашел в магазине воспроизведения, и я хорошо справился с обратным вызовом с помощью STATE_CONNECTED, и мне удалось обнаружить службы.
Итак, мой вопрос, почему мое периферийное приложение BLE (которое запускает сервер gatt и запускает рекламу) недостижимы другими с помощью connectGatt?И почему рекламные пакеты хорошо обнаруживаются?Я должен уточнить, что когда я запускаю свой сервер gatt, обратный вызов onServiceAdded работает нормально.
Как мне запустить мой сервер gatt:
public void startGattServer(){
bluetoothGattServer = bluetoothManager.openGattServer(this, bluetoothGattServerCallback);
BluetoothGattService service = new BluetoothGattService(UUID.fromString(GattAttributes.APDUSERVICE), BluetoothGattService.SERVICE_TYPE_PRIMARY);
BluetoothGattCharacteristic apduRequestCharacteristic = new BluetoothGattCharacteristic(
UUID.fromString(GattAttributes.APDUREQUEST),
BluetoothGattCharacteristic.PROPERTY_WRITE,
BluetoothGattCharacteristic.PERMISSION_WRITE);
BluetoothGattCharacteristic apduResponseCharacteristic = new BluetoothGattCharacteristic(
UUID.fromString(GattAttributes.APDURESPONSE),
BluetoothGattCharacteristic.PROPERTY_WRITE,
BluetoothGattCharacteristic.PERMISSION_WRITE);
service.addCharacteristic(apduRequestCharacteristic);
service.addCharacteristic(apduResponseCharacteristic);
bluetoothGattServer.addService(service);
}
Заранее спасибо за ваши ответы