Локальные узлы Android

#android #bluetooth #p2p

#Android #bluetooth #p2p

Вопрос:

Я пытаюсь работать над многопользовательской игрой для Android и хотел бы иметь возможность локального многопользовательского режима. Они же люди, играющие в одной комнате, кофейне и т.д. (они же одноранговые сети)

Хитрость в том, что я не хочу требовать, чтобы игроки действительно находили друг друга, чтобы их телефоны подключались и обменивались игровыми ходами.

Я посмотрел на Bluetooth (и работал с демонстрационным приложением Bluetooth chat), и проблема в том, что система сопряжения в значительной степени предполагает, что вы можете проверить PIN-код другого устройства.

Есть ли у них какие-либо другие предложения, с которыми люди начали работать? Или я что-то упускаю из виду в том, как работает Bluetooth, и вы можете создать эквивалент локальной сети adhoc?

Я знаю, что рассматриваю: 1 — GPS, чтобы определить, где находится игрок, и позволить игровому серверу обрабатывать сообщения через Wi-Fi. 2 — Используйте систему обнаружения Bluetooth и MAC-адрес, чтобы клиенты могли видеть, кто является локальным, а затем позволить игровому серверу получать это от их.

Спасибо

Комментарии:

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

2. Будет ли это работать, даже если проигрыватель A все еще подключен к сотовому Интернету, а проигрыватель B — к локальной сети с маршрутизацией?

Ответ №1:

Рассматривали ли вы возможность использования API-интерфейсов listenUsingInsecureRfcommWithServiceRecord() и createInsecureRfcommSocketToServiceRecord() ? они доступны с уровня API 10 ,

В них используется новый метод сопряжения, называемый SSP, и для сопряжения не требуется вводить PIN-код.

Комментарии:

1. Приятно, но в настоящее время необходимо создавать для Android 2.2, поскольку это доминирующие версии на рынке.

Ответ №2:

Если под локальным вы подразумеваете локальную сеть, то используйте связь по заранее согласованному IP-адресу многоадресной рассылки. Это будет намного проще.

Комментарии:

1. Не могу предположить, что они находятся в одной локальной сети. Проигрыватель A может подключаться к сигналу Wi-Fi, но проигрыватель B может подключаться к локальной маршрутизируемой сети кофейни.