No he hecho esto antes, por lo que mi respuesta es totalmente teórica.
Creo que lo que tiene que hacer es declarar un dispositivo en el servidor e iniciar su punto de acceso manualmente con un nombre conocido.
Start/stop built-in Wi-Fi/USB tethering from code? (Según esta pregunta, no puede iniciar el punto de acceso programáticamente).
vez que tenga el punto de acceso configurado, poner en marcha la aplicación de servidor y esperar a que las conexiones entrantes. La aplicación de servidor puede mostrarle la dirección IP o el nombre de host.
En los clientes, puede hacer una simple comprobación y ver si el nombre del punto de acceso está activo y conectarse automáticamente si lo encuentra. Vea este enlace para conectar a una red:
Using WifiManager to connect to a network
En cuanto a su segunda pregunta, la forma de comunicarse - que necesita para establecer una conexión entre los dispositivos. Para esto, necesita la dirección IP del servidor. Lo más simple sería mostrar la dirección IP en la IU del servidor y luego ingresarla manualmente en los clientes y presionar Conectar. Luego establecería una conexión con el servidor en un puerto conocido y puede enviar mensajes entre el cliente y el servidor.
Como referencia, encontré NanoHttpd, que es un servidor web para Android. Utiliza ServerSocket para escuchar las conexiones entrantes.
Puede aclarar su pregunta. ¿Con qué te quieres conectar y cómo? ¿Quiere decir que desea conectar un dispositivo (como una PC) al punto de acceso wifi de su teléfono (es decir, a la conexión) automáticamente? – brianestey
Quiero escribir una aplicación que se pueda comunicar entre varios dispositivos Android. (Creo que depende de un total de 6 dispositivos, ya que los puntos de acceso wifi tienen un límite máximo de 5 clientes). Por ejemplo, una sala de chat de subredes local. – shiami
Entonces eso será un servidor y 5 clientes en la red. Y puede comunicarse como la estructura servidor-cliente. – shiami