Acceder

Ver la Versión Completa : Ayuda, automatizar conexión dos terminales..


Dyavlo
03/01/14, 18:18:08
Lo voy a hacer con un simple widget para ON y otro para OFF, o ya veré...

Quiero que al ponerlo en ON me active "Wifi-direct" y "Dispositivos cercanos" y, si es posible, que cargue un perfil en esas dos configuraciones (conectar wifi-direct a mi otro dispositivo Android y activar "compartir" en dispositivos cercanos.

He estado buscando en Tareas, pero ninguna parece valer para acceder a estas dos configuraciones. Y mucha menos idea tengo de cómo podría hacer que al ejecutar la tarea me cargue un perfil en cada configuación.


Lo quiero porque tengo una Galaxy Tab3 en el salpicadero del coche, que conecto mediante Wifi-direct al movil. Mediante "Dispositivos cercanos" accedo a la música y los vídeos que comparto desde el teléfono móvil. Pero es que es un rollo entrar en el coche, activar zona wifi en los dos dispositivos y emparejarlos, y luego en el móvil activar el "Dispositivos cercanos"


Muchas gracias :ok:

*************************************************

Edito: He etado probando tareas y he encontado las dos aplicaciones que necesito modificar. Ambas se llaman "Ajustes" y tienen el icono de configuración de los ajustes de Android, igual que otras 30 aplicaciones exactamente iguales que reconoce Tasker :risitas:.
Probando cada una he dado con las dos. Ahora mi duda: ¿Se puede hacer que al pulsar un widget me active las dos configuraciones? Luego para apagarlo se apaga solo cuando queda fuera del alcance wifi un dispositivo del otro. Es que lo que me hace ahora es que cada tarea me abre la ventana de configuración y tengo yo que activar-desactivar.

Otra opción es hacer que se conecten mediante tethering wifi desde el móvil, que esa opción es más fácil de configurar en Tasker que la de Wifi-direct. Pero sigo necesitando activar "dispositivos cercanos" en lugar de abrir la configuración, que es lo que me hace el widget que tengo ahora.

P.D: Dispositivos cercanos creo que es una función de Samsung "All-share"

mlesir
04/01/14, 15:20:54
Yo por lo menos no entiendo muy bien tu post. Piensa q lo de wifi direct es my específico y creo que das por sabido cosas q el resto no sabemos. Yo lo explicaría asi: primero explica paso a paso como se conectan los dos dispositivos en la manera normal. Después q es lo que has conseguido automatizar. Y después que es lo que te queda.
Por ejemplo eso que tu llamas configuraciones no me queda claro a q te refieres.
Por cierto como a todos los q escriben por primera vez, os recomendamos q os leáis el hilo con chincheta "Recomendaciones..." Un saludo.

Dyavlo
04/01/14, 16:21:02
Grscias por contestar. Ya usé el buscador, y traté de ceñirme a las indicaciones de ese hilo.

Lo que quiero hacer es:
1.Abrir configuracion/wifi/wifidirect.
2.Activar wifi direct y emparejar con un dispositivo.
3.Abrir configuracion/wifi/dispositivos cercanos
4.activar "compartir contendo" en la pantalla de dispositivos cercanos.

Hasta ahora lo unico que he automatizado es el punto 1y 3

mlesir
05/01/14, 00:22:38
Por lo que he visto tasker ni secure settings permiten hacer nada parecido. Esta en tasker como una de las cosas pendientes de implementar.
Quizá exista una app que administre el wifi direct y q tenga integración con tasker.
Una opción es mediante intents que permitan conectar el wifi direct y compartir. Mira a ver si esto te puede ayudar:
http://forum.xda-developers.com/showthread.php?t=2085296

Otra opción es como siempre utilizar el trackball. En el subforo tenemos bastantes comentarios sobre como emular pulsaciones. Añado q tienes el plugin Autoinput para grabar y emular pulsaciones en la pantalla.
La última opción seria buscar otra forma de conectar los dos dispositivos. Quizá por bluetooth?
Siento no poder ayudarte más.

Dyavlo
05/01/14, 15:41:36
Me has ayudado muchísimo. Voy a mirar las opciones que me has dado. Muchas gracias.

Lo quiero hacer por wifi porque para reproducir video del movil en la tablet necesito una buena velocidad.

Dyavlo
05/01/14, 22:00:02
http://i41.tinypic.com/zxqmg8.png

No sé si funcionará, no puedo probarlo ahora mismo.

Os mantendré informados.

Dyavlo
06/01/14, 20:36:33
http://i41.tinypic.com/zxqmg8.png

No sé si funcionará, no puedo probarlo ahora mismo.

Os mantendré informados.

Nada. Lo ejecuto en los dos y no hace nada.

No sé si se podrá añadir algo a ese comando para que busque al otro equipo y autorice la conexión...

Dyavlo
09/01/14, 16:25:24
Me han pasado una serie de comandos para compilar una aplicación apk que no funcionaría, pero que sirve como comienzo. Yo no he programado java en mi vida, pero parecía bastante fácil. Si lo necesitáis os pego aquí el contexto, que básicamente servía para revisar los dispositivos wifi y capturar sus nombres. Luego había que ordenar que wifi-direct atacara el equipo remoto. Con otro apk habría que permitir desde el remoto el acceso a la conexión, vamos, que eran muchas líneas de programación y sin tener idea me daba mucha pereza.

Me acaba de llegar un Galaxy S4 que permite Screen Mirroring y voy a probar qué tal va en la Galaxy Tab3. Si funciona bien olvido el tema. Aunque tendré también que automatizarlo, jeje.

mlesir
09/01/14, 22:10:06
Pues si lo puedes poner yo creo que mejor. Siempre puede haber alguien interesado en hacerlo y que lo retome.. aunque sea después de meses.

Dyavlo
11/01/14, 17:42:49
Claro que sí.

Este es la clase java que gestiona los dispositivos dentro de una red:

http://developer.android.com/reference/android/net/nsd/NsdManager.html


Con este metodo sabes que dispositivos hay conectados en la red:

discoverServices(String serviceType, int protocolType, NsdManager.DiscoveryListener listener) Initiate service discovery to browse for instances of a service type.

No lo he usado nunca, pero el DiscoveryListener tiene toda la pinta de usarse para notificar fuera del metodo a alguna clase/método la presencia de algún nuevo dispositivo.

registerService(NsdServiceInfo serviceInfo, int protocolType, NsdManager.RegistrationListener listener) Register a service to be discovered by other services.

Y luego con este otro método lo registras.

Aquí está el contenido de la clase.
https://android.googlesource.com/pla...sdManager.java (https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/net/nsd/NsdManager.java)

Código que puede orientar
http://stackoverflow.com/questions/1...g-all-services (http://stackoverflow.com/questions/12799615/android-nsd-not-discovering-all-services)


Todo esto requiere dotes de programación. Esta tarde he vuelto a intentar hacer algo, pero me siento manco ante el entorno de programación y me encuentro muy perdido.