Desidero abilitare/disabilitare la connessione GSM di un telefono Android. Devo disabilitare/abilitare le chiamate e gli SMS come richiesto. Come potrei farlo?Come disabilitare la connessione GSM in Android a livello di programmazione
risposta
EDIT: Questa soluzione si spegnerà WiFi, Bluetooth, ecc ...
Se si desidera disattivare solo la radio, penso che sia legato a questo problema: http://code.google.com/p/android/issues/detail?id=1065 Sono molto pessimista di trovare una buona soluzione, ma curioso di vedere altre risposte.
vedere l'articolo del 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);
dove isEnabled
è se la modalità aereo è abilitato o meno.
Non dimenticare che è necessario il permesso WRITE_SETTINGS per farlo.
/* 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 questo richiede il permesso android.permission.WRITE_SETTINGS
, e per il bluetooth android.permission.BLUETOOTH_ADMIN
. Per NFC potresti aver bisogno di android.permission.NFC
.
modifiche: fortemente modificati dal originale, dal momento che mi è stato effettivamente usando questo in un modo diverso nella mia app
Anche il mio telefono ha wimax in Settings.System.AIRPLANE_MODE_RADIOS: "cell, bluetooth, wifi, nfc, wimax". Questo è sorprendente perché questo telefono non supporta 4G WiMax! – pmont
- 1. Come disabilitare SparkUI a livello di programmazione?
- 2. Come bloccare a livello di programmazione la schermata in Android?
- 3. Android: Come attivare/disattivare il WiFi o connessione Internet a livello di programmazione
- 4. Android - Come toccare la voce ListView a livello di programmazione
- 5. Android - Come cambiare la modalità Timepicker a livello di programmazione?
- 6. come disabilitare la correzione incantesimo di programmazione in Android
- 7. Impostazione android: animateLayoutChanges a livello di programmazione
- 8. Come disabilitare/abilitare la rete, passare a Wifi nell'emulatore Android?
- 9. Come attivare FlashLight in Lollipop a livello di programmazione Android
- 10. Come abilitare a livello di programmazione GPS in Android Cupcake
- 11. Come creare un menu a livello di programmazione in Android?
- 12. Come mettere Android in standby a livello di programmazione?
- 13. Imposta la visibilità nel Menu a livello di programmazione Android
- 14. Come disabilitare la connessione automatica WIFI in Android
- 15. Come configurare ELMAH a livello di programmazione?
- 16. Come posso disabilitare la modalità di compatibilità IE a livello di programmazione?
- 17. Come disabilitare la modalità di sospensione dell'orologio Apple a livello di programmazione
- 18. Come verificare a livello di codice la disponibilità della connessione Internet in Android?
- 19. Connessione a un auricolare Bluetooth da un'applicazione Android a livello di programmazione
- 20. Deviazione di chiamata Android a livello di programmazione
- 21. Disabilitare la connessione di rete
- 22. Android - Come acquisire gli screenshot a livello di programmazione
- 23. Fine chiamata in Android a livello di programmazione
- 24. Android view layout_width - come cambiare a livello di programmazione?
- 25. Android come gateway SIP su GSM
- 26. blocco di orientamento in Android a livello di programmazione
- 27. Mixer di song audio in Android a livello di programmazione
- 28. centraggio ProgressBar livello di programmazione in Android
- 29. Su Android, come commuti le attività a livello di programmazione?
+1 buona soluzione –
Quando si passa il telefono in modalità aereo si sarà anche sopprimere wi-fi e bluetooth. Non penso che sia ciò che è previsto. Il compito primario era quello di sopprimere solo la connessione GSM ... – barmaley
sì, ho già provato con airplanemode. Ciò disabiliterà anche il Bluetooth.ma voglio disabilitare solo le chiamate e gli sms è possibile ????? ho disabilitato GPRS. C'è qualche metodo è disponibile ???? – Ram