Android BLE как проблема периферийной многократной рекламы
Я работаю над Android BLE в качестве периферийного устройства, подключенного к пользовательскому устройству, которое работает под управлением Nordic NRF51 в качестве центрального устройства. Проект требует подключения периферийного устройства Android к двум центральным устройствам NRF51.
Android рекламирует два разных рекламных UUID: один для левого, а другой для правого устройства Nordic NRF51. В идеале мне бы хотелось, чтобы оба скандинавских централа одновременно подключались к Android.
У меня есть две основные проблемы.
Первая проблема. Android может получить оба соединения в порядке. Проблема возникает, когда Android отправляет уведомление или Android отправляет ответ в результате запроса на запись от центра. Когда оба центральных узла подключены, часто работает ни уведомление, ни отправка ответа. Я подтвердил, что Nordic Central не получает ни уведомление, ни ответ. Есть ли у кого-нибудь опыт работы с Android как с периферийным устройством, поддерживающим несколько подключений одновременно? Я перепробовал два экземпляра BluetoothGattServer (по одному для каждого устройства), а также один экземпляр BluetoothGattServer, и, основываясь на подключенном устройстве, я могу сказать, для какого Центрального события, если для, и обработать его правильно. Он отправляет уведомление или отправляет ответ на запрос на запись, который иногда не отправляется с Android. Я использую синхронизированные методы на обработчиках событий GattServerCallback.
Второй выпуск Из-за первой проблемы, я сейчас рекламирую только один UUID одновременно. Идея состоит в том, чтобы переключаться между двумя рекламными UUID, таким образом, иметь только одно соединение одновременно. Проблема сейчас в переключении рекламы. Примерно 1 из 3 раз, когда я начинаю рекламу с первым UUID с его именем (LFDroid), оказывается, что он на самом деле кратко рекламирует второй UUID с его именем (RTDroid) (1 или 2 секунды), а затем рекламирует то, что было запрошено. Обратите внимание, что вторая реклама UUID была остановлена при предыдущем переключении. Это почти похоже на то, что когда я прошу дать объявление, оно начинает рекламироваться с последним объявленным UUID и именем, а затем быстро рекламирует то, что запрашивается. Это сейчас вызывает проблемы, потому что скандинавские централы видят рекламу и подключаются.
Мы ценим любые предложения.