Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo iniciar la pantalla de configuración de red móvil desde mi código

Quiero lanzar la pantalla de las configuraciones de la red móvil, de modo que el usuario pueda permitir / inhabilitar 3g o la conexión de datos. ¿Puede alguien decirme qué intención necesito usar para iniciar la actividad. solía

Intent in = new Intent(android.provider.Settings.ACTION_NETWORK_OPERATOR_SETTINGS ) 

y

 Intent in = new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS ). 

Pero ambos no funcionaron.

  • MultiDexApplication no reconocido
  • Comprobar la aplicación de Android está en primer plano o no?
  • Ocultar el teclado virtual en la actividad sin ninguna operación de teclado
  • Android sleep () sin bloquear la interfaz de usuario
  • Android: Unidad de pruebas de aplicaciones Android con Robolectric y Mockito
  • ¿Cómo encontrar el propietario de la cuenta para la aplicación de Android en la consola de Google Play para desarrolladores?
  • Aplicación Android phonegap que tiene problemas con SQlite y almacenamiento local en dispositivos Samsung Galaxy
  • AudioRecord: ¿Desbordamiento del búfer?
  • 4 Solutions collect form web for “¿Cómo puedo iniciar la pantalla de configuración de red móvil desde mi código”

    No van a funcionar porque había un error que se arregló creo que en 2.3.

    Consulte https://review.source.android.com/#/c/22229/

    Puede omitir este uso (para NETWORK_OPERATOR_SETTINGS)

     Intent intent = new Intent(Intent.ACTION_MAIN); intent.setClassName("com.android.phone", "com.android.phone.NetworkSetting"); startActivity(intent); 

    Reemplazar NetworkSetting con la Settings de DATA_ROAMING_SETTINGS

    Hay otra solución similar descrita en Error al abrir el menú de configuración de red móvil

    ACTUALIZAR

    Hace poco he probado esto y parece que esta solución aún es necesario hasta el nivel API 15. Desde API nivel 16 las intenciones en la pregunta parecen funcionar correctamente.

    Intentaré contestar, a pesar del hecho de que esta pregunta fue hecha hace unos años. Si lo que intentas hacer es iniciar la pantalla "Uso de datos". Pruebe este fragmento de código. Funcionó para mí.

     Intent intent = new Intent(Intent.ACTION_MAIN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity")); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 
     public class SettingsScreen { protected static void _showSettingScreen(String intentStr) { try { Intent intent = new Intent(intentStr); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Reference.getAppContext().startActivity(intent); } catch (Exception e) {Reference.showToast(e.toString(), true);} } public static void showSettingScreen() { _showSettingScreen("android.settings.SETTINGS"); } public static void showAPNScreen() { _showSettingScreen("android.settings.APN_SETTINGS"); } public static void showLocationScreen() { _showSettingScreen("android.settings.LOCATION_SOURCE_SETTINGS"); } public static void showSecurityScreen() { _showSettingScreen("android.settings.SECURITY_SETTINGS"); } public static void showWifiScreen() { _showSettingScreen("android.settings.WIFI_SETTINGS"); } public static void showBluetoothScreen() { _showSettingScreen("android.settings.BLUETOOTH_SETTINGS"); } public static void showDateScreen() { _showSettingScreen("android.settings.DATE_SETTINGS"); } public static void showSoundScreen() { _showSettingScreen("android.settings.SOUND_SETTINGS"); } public static void showDisplayScreen() { _showSettingScreen("android.settings.DISPLAY_SETTINGS"); } public static void showApplicationScreen() { _showSettingScreen("android.settings.APPLICATION_SETTINGS"); } public static void showNetworkSettingScreen() { showDataRoamingScreen(); } public static void showNetworkOperatorScreen() { if(Reference.getSystemOptions().VERSION_SDK_INT > 15) { _showSettingScreen("android.settings.NETWORK_OPERATOR_SETTINGS"); } else { Intent intent=new Intent(android.provider.Settings.ACTION_SETTINGS); intent.setClassName("com.android.phone", "com.android.phone.NetworkSetting"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Reference.getAppContext().startActivity(intent); } } public static void showDataRoamingScreen() { if(Reference.getSystemOptions().VERSION_SDK_INT > 15) { _showSettingScreen("android.settings.DATA_ROAMING_SETTINGS"); } else { Intent intent=new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS); ComponentName cName = new ComponentName("com.android.phone","com.android.phone.Settings"); intent.setComponent(cName); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Reference.getAppContext().startActivity(intent); } } public static void showDataMobileScreen() { if(Reference.getSystemOptions().VERSION_SDK_INT > 15) { Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);//android.provider.Settings.ACTION_SETTINGS //Intent.ACTION_MAIN intent.setClassName("com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Reference.getAppContext().startActivity(intent); } else { showDataRoamingScreen(); } } public static void showNotificationScreen() { _showSettingScreen("android.settings.NOTIFICATION_SETTINGS"); } public static void showBatterySaverScreen() { _showSettingScreen("android.settings.BATTERY_SAVER_SETTINGS"); } public static void showNfcScreen() { _showSettingScreen("android.settings.NFC_SETTINGS"); } public static void showInternalStorageScreen() { _showSettingScreen("android.settings.INTERNAL_STORAGE_SETTINGS"); } public static void showDictionarySettingScreen() { _showSettingScreen("android.settings.USER_DICTIONARY_SETTINGS"); } public static void showManageApplicationsScreen() { _showSettingScreen("android.settings.MANAGE_APPLICATIONS_SETTINGS"); } public static void showManageAllApplicationsScreen() { _showSettingScreen("android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS"); } public static void showMemoryCardScreen() { _showSettingScreen("android.settings.MEMORY_CARD_SETTINGS"); } public static void showAirPlaneScreen() { if(Reference.getSystemOptions().VERSION_SDK_INT > 16) { if(Reference.getSystemOptions().BRAND.equalsIgnoreCase("Lenovo")) { showSettingScreen(); } else { _showSettingScreen("android.settings.WIRELESS_SETTINGS"); } } else { _showSettingScreen("android.settings.AIRPLANE_MODE_SETTINGS"); } } public static void showWirelessScreen() { _showSettingScreen("android.settings.WIRELESS_SETTINGS"); } public static void showWifiScreenSafe() { try { Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings"); intent.setComponent(cn); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Reference.getAppContext().startActivity(intent); } catch (Exception e) {} } } 

    Hay dos posibilidades:

    Se trae a la configuración general de la red y desde allí el usuario puede ir a redes móviles

     startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS)); 

    Como Zharf sugirió:

    Despliega la configuración de la red móvil y desde allí el usuario puede habilitar la red

     Intent intent = new Intent(Intent.ACTION_MAIN); intent.setClassName("com.android.phone","com.android.phone.NetworkSetting"); startActivity(intent); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.