Сеть Mesh/ P2P на Android, без взаимодействия с пользователем

Мы группа студентов, изучающих информатику, в настоящее время работаем над проектом в рамках нашего магистра.

Наша проблема заключается в следующем.

Мы работаем над приложением для Android, которое требует, чтобы устройства обменивались небольшими объемами данных. Это должно работать без мобильных подключений или существующих сетей WiFi, например, используя Bluetooth, WiFi direct и т. Д.

Мы рассмотрели Bluetooth Smart, который позволяет устройству работать в рекламном режиме, отправляя 31 байт данных, это будет более чем достаточно для наших нужд. Но это поддерживается только в Android 5.0, так что это серьезно ограничивает нашу доступность.

Подтверждение сообщения и проверка ошибок - это плюс, но это не обязательно. Так что соединение UDP возможно.

Все решения, которые мы можем найти, включают в себя либо то, что пользователь активно принимает одноранговый запрос, что неприемлемо, так как могут быть сотни устройств, взаимодействующих друг с другом, или рутирующих устройство.

Короче говоря, мы ищем способ для устройства передавать небольшое количество данных, минимум 24 байта. Без необходимости пользователю делать что-либо кроме запуска приложения.

3 ответа

Поскольку у меня недостаточно репутации, чтобы отвечать на ваш комментарий, мне придется написать ответ в качестве ответа и надеяться, что вы его прочитаете.

To Mach: Хотя это правда, что 4.3 может выступать в качестве центрального устройства и в качестве такового выступать в качестве клиента, 5.0 была версия для Android, которая представила возможность устройства выступать в качестве периферийного устройства и действовать как сервер и выдавать информацию, Это то, во что я поверил. Я что-то пропустил? Если центральное устройство способно рекламировать информацию, то в чем разница между центральным и периферийными устройствами?

Bluetooth Smart, также называемый Bluetooth Low Energy (BLE), не требует взаимодействия с пользователем при сопряжении и поддерживается с уровня API 18, а не 21. BLE требует, чтобы в телефоне было установлено оборудование Bluetooth 4.0.

Быстрое сканирование и время подключения (<5 мс) также являются большим плюсом для Bluetooth с низким энергопотреблением.

При переключении между сервером и клиентом можно было бы передавать сообщения. Сегодня большинство стеков Bluetooth для Android допускают 8 или более одновременных GATT-соединений, что позволяет создать довольно эффективную ячеистую сеть.

В настоящее время нет предопределенных профилей GATT для того, что вы пытаетесь сделать, но есть необходимость, и, надеюсь, вы найдете хорошее решение.

Удачи!

Я занимался тем же проектом, что и вы, ребята. Тогда я узнал это:

/questions/38571298/bluetooth-soedinenie-bez-podtverzhdeniya-polzovatelya/38571306#38571306

Они используют createInsecureRfcommSocketToServiceRecord а также listenUsingInsecureRfcommWithServiceRecord,

После тестирования мне удалось отправить сообщение между двумя непарными устройствами.

Надеюсь, это поможет.

Другие вопросы по тегам