Quiero habilitar/deshabilitar la conexión GSM de un teléfono Android. Necesito deshabilitar/habilitar llamadas y SMS según sea necesario. ¿Cómo podría hacer esto?Cómo deshabilitar la conexión GSM en Android programáticamente
Respuesta
EDIT: Esta solución también se apagará WiFi, Bluetooth, etc ...
Si desea apagar la radio solamente, creo que está relacionado con este tema: http://code.google.com/p/android/issues/detail?id=1065 Estoy muy pesimista sobre la búsqueda de una buena solución, pero curioso de ver otras respuestas.
Véase el artículo de blog Android: Controlling Airplane Mode,
// Toggle airplane mode.
Settings.System.putInt(
context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);
// Post an intent to reload.
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", !isEnabled);
sendBroadcast(intent);
donde isEnabled
es si el modo avión está activado o no.
No olvide que necesita el permiso WRITE_SETTINGS para hacerlo.
/* Toggle airplane mode for 1 of the 4 allowed types
* type allowed values: cell, wifi, bluetooth, nfc
*/
private void changeRadioComponentEnabled(Context context, String type, boolean radio_component_enabled, boolean reset){
// now toggle airplane mode from on to off, or vice versa
Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, radio_component_enabled ? 0 : 1);
// now change system behavior so that only one component is turned off
// this also affects the future behavior of the system button for toggling air-plane mode.
// to reset it in order to maintain the system behavior, set reset to true, otherwise we lazily make sure mobile voice is always on
Settings.System.putString(context.getContentResolver(), Settings.System.AIRPLANE_MODE_RADIOS, type);
// post an intent to reload so the menu button switches to the new state we set
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", radio_component_enabled ? false : true);
context.sendBroadcast(intent);
// revert to default system behavior or not
if (reset){ Settings.System.putString(context.getContentResolver(), Settings.System.AIRPLANE_MODE_RADIOS, "cell,bluetooth,wifi,nfc"); }
// if reset to default is not chosen, always enable mobile cell at least
// but only if NOT changing the mobile connection...
else if (type.indexOf("cell") == 0) { Settings.System.putString(context.getContentResolver(), Settings.System.AIRPLANE_MODE_RADIOS, "cell");}
}//end method
naturalmente requieren este permiso android.permission.WRITE_SETTINGS
, y para el bluetooth android.permission.BLUETOOTH_ADMIN
. Para NFC, puede necesitar android.permission.NFC
.
ediciones: muy modificada desde original, ya que en realidad estaba usando esto de una manera diferente en mi propia aplicación
Mi teléfono también tiene wimax en Settings.System.AIRPLANE_MODE_RADIOS: "cell, bluetooth, wifi, nfc, wimax". ¡Eso es sorprendente porque este teléfono no es compatible con 4G WiMax! – pmont
- 1. Habilitar/deshabilitar la conexión USB o WiFi programáticamente en Android
- 2. Conexión WiFi Android programáticamente
- 3. Cómo habilitar/deshabilitar bluetooth programáticamente en android
- 4. Android cómo habilitar/deshabilitar la sincronización automática programáticamente
- 5. Habilitar/deshabilitar mediante programación la conexión
- 6. Cómo deshabilitar/habilitar la conexión de red en C#
- 7. Deshabilitar la conexión de red
- 8. ¿Cómo comprobar programáticamente la disponibilidad de la conexión a Internet en Android?
- 9. ¿Cómo bloquear programáticamente la pantalla en Android?
- 10. Android como puerta de enlace SIP a GSM
- 11. ¿Cómo deshabilitar/habilitar la red, cambiar a WiFi en el emulador de Android?
- 12. Deshabilitar la pantalla de suspensión Programativamente en Android?
- 13. Interfaz Android con conexión Ethernet
- 14. Cambiar la zona horaria en Android programáticamente
- 15. Módem GSM enviar SMS
- 16. deshabilitar las cifras débiles en la conexión SSL
- 17. Cómo rechazar una llamada programáticamente en android
- 18. ¿Cómo crear un menú programáticamente en Android?
- 19. Activar programáticamente la pantalla en android
- 20. ¿Realizar Segue programáticamente sin conexión de botón?
- 21. Identificar el algoritmo de cifrado GSM
- 22. Enviando MMS programáticamente en Android
- 23. ¿Cómo puedo obtener la ubicación actual en Android programáticamente?
- 24. ¿Cómo obtengo la ubicación actual de GPS programáticamente en Android?
- 25. conexión wifi cambió la acción en Android
- 26. cómo deshabilitar la corrección ortográfica mediante programación en android
- 27. android Desvío de llamadas programáticamente
- 28. Comprobando la conexión a Internet en android
- 29. Cómo verificar la red de iPhone tipo GSM o CDMA
- 30. ¿Cómo olvidar una red inalámbrica en Android programáticamente?
1 buena solución –
Cuando va a cambiar el teléfono al modo avión también se suprimirá wi-fi y bluetooth. No creo que sea lo que se espera. La tarea principal era suprimir solo la conexión GSM ... – barmaley
yes.i ya lo intenté con airplanemode. Eso también deshabilitará el bluetooth. Pero quiero deshabilitar solo call y sms, ¿es posible? Deshabilité GPRS. ¿Hay algún método disponible? – Ram