2012-01-14 23 views
86

Necesito apagar el WiFi un rato después de presionar el botón "Apagar la pantalla". Hay una necesidad de esta aplicación para mi tableta porque a veces me olvido de apagar el WiFi y esto descarga la batería muy rápido. Vive 10x + veces menos de lo que lo haría sin WiFi. ¿Hay alguna solución disponible como .apk? ¿Puedo rastrear cuando la pantalla se apaga y transcurren 5 min? ¿Puedo desactivar programáticamente WiFi en un dispositivo Android? ¿Cómo?¿Cómo apagar programáticamente WiFi en un dispositivo Android?

+2

Si es solo para ti, Android obtuvo la configuración de "política de sueño de WiFi" en "Configuración de WiFi" -> "Avanzado". Habilitas la desactivación de WiFi después de 15 minutos. –

+0

No tengo esta característica, en la configuración avanzada de mi WiFi solo tengo configuración de protocolo (DNS, IP estática, MAC, etc.) –

Respuesta

193

son necesarios los siguientes permisos en el archivo de manifiesto:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> 

continuación, puede utilizar lo siguiente en su clase de actividad:

WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true); 
wifiManager.setWifiEnabled(false); 

Utilice la siguiente para comprobar si está activado o no

boolean wifiEnabled = wifiManager.isWifiEnabled() 

Encontrará un buen tutorial sobre el tema en this sitio.

+11

¿Por qué es necesario el bloqueo de activación para esto? – benbeel

+0

Sí, funciona sin WAKLE_LOCK y UPDATE_DEVICE_STATS, ¿por qué se incluyeron? – powder366

+2

Bueno, supongo que los permisos adicionales fueron solo el resultado de copiar directamente el código desde el enlace que proporcionó, pero aún así, UPDATE_DEVICE_STATS está reservado solo para aplicaciones del sistema, la aplicación ni siquiera compilará con ese permiso. –

Cuestiones relacionadas