2011-06-27 17 views
5

Tengo un problema que me ha estado molestando en extremo en los últimos días. Me gustaría escribir un script sh Android que hace lo siguiente (que me ayude a sincronizar música, fotos, etc.):Problemas de script wifi Android

1) Encienda Wi-Fi (Wi-Fi está desactivada por defecto para ahorrar energía)

2) Compruebe si la conexión Wi-Fi está en el rango (permite llamarlo MyWiFi)

3) Si MyWiFi no está dentro del rango, desactivar Wi-Fi, si está dentro del rango, conectar y empezar algún tipo de software de sincronización

Ahora, para permitir/Deshabilitar wifi, uso el siguiente comando, que requiere root:

svc wifi enable/disable

Para escanear para conexiones wifi avaible, utilizo el siguiente comando:

iwlist eth0 scan

Lo strage es, que iwlist eth0 scan sólo funcionará si no estoy conectado como root (Estoy muy curiosidad por qué este es el caso, si alguien sabe algo), corriendo mientras raíz volverá:?

eth0: Interface doesn't support scanning : Invalid argument

pero ejecutarlo sin iniciar sesión como root me dará la información que necesito. He intentado diferentes enfoques para evitar este problema. El más obvio es el registro como usuario estándar en el sistema Android derecha antes de invocar el comando iwlist:

su -c app_1

Sin embargo, cualquier comando que implica su devolverá permission denied incluso cuando se invoca como root, y desde sudo no existe en Android, me siento bastante perdido aquí. También probé una solución que implica dividir el script en dos partes e intentar ejecutar el primero como root y el segundo como no root (el usuario predeterminado en Android i app_1), pero esto solo retrasará el problema ...

Si alguien tiene una respuesta sobre cómo solucionar este problema del usuario, o cómo usar iwlist eth0 scan (u otro comando que haga lo mismo) mientras está conectado como root, le estaría muy agradecido.

Gracias.

+0

¿Qué versión de inalámbrico (número) .h usó? – NoBugs

+0

Lo siento, pero no recuerdo y me temo que el guión se perdió con mi viejo teléfono Nexus. Empecé a usar Google Music en lugar del script anterior. – AHaahr

Respuesta

0

De acuerdo con man iwlist, los usuarios normales solo pueden ver algunos resultados de escaneo restantes. Para iniciar un nuevo escaneo como root, primero debe iniciar su interfaz (después de iniciar wifi):

ifconfig wlan0 up 
Cuestiones relacionadas