Non l'ho mai fatto prima, quindi la mia risposta è tutta teorica.
Penso che quello che devi fare è dichiarare un dispositivo al server e avviare il suo hotspot manualmente con un nome noto.
Start/stop built-in Wi-Fi/USB tethering from code? (in base a questa domanda, non è possibile avviare l'hotspot in modo programmato).
Una volta impostato l'hotspot, si avvia l'app del server e si attendono le connessioni in entrata. L'app del server può mostrare l'indirizzo IP o il nome host.
Sui client, è possibile fare un semplice controllo e vedere se il nome dell'hotspot è intorno e connettersi automaticamente ad esso se lo si trova. Vedere questo link per il collegamento a una rete:
Using WifiManager to connect to a network
Per quanto riguarda la seconda domanda, come comunicare - è necessario stabilire una connessione tra i dispositivi. Per questo, è necessario l'indirizzo IP del server. La cosa più semplice da fare sarebbe mostrare l'indirizzo IP sull'interfaccia utente del server e poi inserirla manualmente sui client e premere Connetti. Stabilirebbe quindi una connessione al server su una porta conosciuta e sarà possibile inviare messaggi tra client e server.
Per riferimento, ho trovato NanoHttpd, che è un server web per Android. Utilizza ServerSocket per ascoltare le connessioni in entrata.
Puoi chiarire la tua domanda. A cosa ti vuoi connettere e come? Intendi dire che desideri collegare automaticamente un dispositivo (come un PC) all'hotspot Wi-Fi del tuo telefono (ad es. Il tethering)? – brianestey
Voglio scrivere un'app in grado di comunicare tra diversi dispositivi Android. (Penso che sia fino a un totale di 6 dispositivi dato che gli hotspot wifi hanno al massimo 5 client al massimo.) Ad esempio, una chat room di sottorete locale. – shiami
Quindi questo sarà un server e 5 client nella rete. E può comunicare come struttura client-server. – shiami