#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 может подключаться к локальной маршрутизируемой сети кофейни.