Я не делал этого раньше, поэтому мой ответ полностью теоретический.
Я думаю, вам нужно объявить одно устройство сервером и вручную запустить его точку доступа с известным именем.
Запуск / остановка встроенного Wi-Fi / USB-модема из кода? (В соответствии с этим вопросом вы не можете запустить горячую точку программно).
После настройки точки доступа вы запускаете серверное приложение и ждете входящих подключений. Серверное приложение может показать вам IP-адрес или имя хоста.
На клиентах вы можете выполнить простую проверку и посмотреть, присутствует ли имя точки доступа, и автоматически подключиться к ней, если вы ее найдете. Смотрите эту ссылку для подключения к сети:
Использование WifiManager для подключения к сети
Что касается вашего второго вопроса, как общаться - вам нужно установить соединение между устройствами. Для этого вам нужен IP-адрес сервера. Самое простое, что можно сделать, это показать IP-адрес на пользовательском интерфейсе сервера, а затем вручную ввести его на клиентах и нажать «Подключиться». Затем он установит соединение с сервером по известному порту, и вы сможете отправлять сообщения между клиентом и сервером.
Для справки я нашел NanoHttpd , который является веб-сервером для Android. Он использует ServerSocket для прослушивания входящих соединений.