android airplane

¿Cómo habilitar y deshabilitar programáticamente el modo de vuelo en Android 4.2?



airplane (4)

¿Hay alguna manera de deshabilitar o habilitar el Modo de vuelo en Android 4.2?

Uso este código que funciona solo para versiones anteriores de Android:

android.provider.Settings.System.putInt( c.getContentResolver(), android.provider.Settings.System.AIRPLANE_MODE_ON, enable ? 0 : 1 );


Esto ya no es posible, excepto por las aplicaciones que están firmadas por la clave de firma del firmware o que están instaladas en la partición del sistema (generalmente por un usuario de dispositivo rooteado).


Existe una solución simple en dispositivos arraigados .

Para habilitar el Modo avión, se pueden usar los siguientes comandos de shell raíz:

settings put global airplane_mode_on 1 am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true

Para deshabilitar el Modo avión, se pueden usar estos comandos de shell raíz:

settings put global airplane_mode_on 0 am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

Información tomada desde here

Descargo de responsabilidad: Esta información se proporciona "tal cual" sin ningún tipo de garantía.


No puedes, como está escrito en la documentación oficial de la API de Android 4.2

Algunas configuraciones de dispositivos definidas por Settings.System ahora son de solo lectura. Si su aplicación intenta escribir cambios en las configuraciones definidas en Settings.System que se han movido a Settings.Global , la operación de escritura fallará silenciosamente cuando se ejecute en Android 4.2 y superior. Incluso si su valor para android:targetSdkVersion y android:minSdkVersion es inferior a 17, su aplicación no puede modificar la configuración que se ha movido a Settings.Global cuando se ejecuta en Android 4.2 y superior.

Sin embargo, si usted es el desarrollador del sistema operativo, puede escribirlo cuando establezca estos permisos

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

Luego escribir y leer,

// To Write Settings.Global.putString(getContentResolver(), "airplane_mode_on", "1"); // To Read String result = Settings.Global.getString(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON); Toast.makeText(this, "result:"+result, Toast.LENGTH_SHORT).show();


Para KitKat, debe agregar android:sharedUserId="android.uid.system" en el archivo de manifiesto.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.airplanesetting" android:versionCode="1" android:versionName="1.0" android:sharedUserId="android.uid.system" >