¿Puedo cambiar el propietario del grupo en un grupo persistente en Wi-Fi Direct?

Al crear un grupo a través de Wi-Fi Direct, sé que puedo crear un grupo persistente.

Mi pregunta es: ¿puedo crear un grupo persistente, pero cada vez cambiar el propietario del grupo (es decir, cada turno, el propietario del grupo será uno de los dispositivos en el grupo).

Además, al crear un grupo persistente, se requiere aceptar la conexión solo la primera vez, ¿verdad?

Ahora puede crear un nuevo grupo persistente a través de WifiP2pManager.createGroup(..) . Creará un nuevo grupo y creará el propietario del grupo de llamadas (A) y podrá hacer lo que usted describió. El único problema es que una vez que crea un grupo y se conecta a otro dispositivo, ese otro dispositivo (B) recordará ese grupo específico. Si intenta crear un nuevo grupo en A (por ejemplo, abrir la aplicación por segunda vez) e intenta conectarse desde B, se unirá automáticamente al grupo anterior y no aparecerá como si estuviera conectado en el nuevo grupo en A.

EDITAR: hay una forma de borrar todos los grupos persistentes. Es una función oculta llamada deletePersistentGroups . Sin embargo, esto borrará cada uno, pero parece ser la única forma confiable de resolver su problema. Llámalo luego de llamar a WifiP2pManager.initialize(..) , para que pueda usar el canal.

 private void deletePersistentGroups(){ try { Method[] methods = WifiP2pManager.class.getMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].getName().equals("deletePersistentGroup")) { // Delete any persistent group for (int netid = 0; netid < 32; netid++) { methods[i].invoke(wifiP2pManager, mChannel, netid, null); } } } } catch(Exception e) { e.printStackTrace(); } } 

No estoy seguro de por qué el netid sube a 31, supongo que ese es el número máximo de conexiones permitidas recordadas. Código tomado de aquí .

La respuesta para su primera pregunta es NO. “El propietario del grupo P2P de un grupo P2P persistente se determina cuando se forma el grupo P2P y es el mismo dispositivo P2P en las sesiones posteriores del grupo P2P”. Esta línea de la especificación p2p dice que no puedes cambiar el propietario del grupo.

Sí, se requiere aceptar la conexión por primera vez. Un grupo persistente permite la reconexión sin la intervención del usuario.

El comportamiento de persistencia aún no se admite en el marco directo de Android wifi.