我需要做什么才能启动手机互联网设置对话框?

我试图设置移动数据。 但它只适用于SIM 1

 public static void setMobileData(Context context, boolean isEnabled) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { ConnectivityManager conman = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); @SuppressWarnings("rawtypes") final Class conmanClass = Class.forName(conman.getClass().getName()); final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true); final Object iConnectivityManager = iConnectivityManagerField.get(conman); final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); Class[] cArg = new Class[2]; cArg[0] = String.class; cArg[1] = Boolean.TYPE; Method setMobileDataEnabledMethod; setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", cArg); Object[] pArg = new Object[2]; pArg[0] = context.getPackageName(); pArg[1] = isEnabled; setMobileDataEnabledMethod.setAccessible(true); setMobileDataEnabledMethod.invoke(iConnectivityManager, pArg); } public static void setMobileData2(Context context, boolean isEnabled) throws NoSuchMethodException, ClassNotFoundException, IllegalAccessException, NoSuchFieldException, InvocationTargetException { final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final Class conmanClass = Class.forName(conman.getClass().getName()); final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true); final Object iConnectivityManager = iConnectivityManagerField.get(conman); final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE); setMobileDataEnabledMethod.setAccessible(true); setMobileDataEnabledMethod.invoke(iConnectivityManager, isEnabled); } public static boolean setMobileData3(Context context, boolean isEnable) { boolean mobileDataAllowed = Settings.Secure.putInt(context.getContentResolver(), "mobile_data", isEnable?1:0); return mobileDataAllowed; } 

但现在我只想启动默认的移动select对话框 。 如果你有任何想法启动该对话让我知道..在此先感谢。

Solutions Collecting From Web of "我需要做什么才能启动手机互联网设置对话框?"

多点触控支持仅在android lollipop 5.1中添加。 在此之前,不同的手机制造商有自己的自定义实施,以支持多SIM卡和相应的设置。 因此,如果您的目标是通用解决scheme,则无法实现。 即使在5.1,也没有直接的意图启动这个特定的设置,但使用黑客可能实现提供制造商应该只使用谷歌解决scheme,否则将无法正常工作。

你必须开始这样的设置的意图。

 startActivityForResult(new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS), 0); 

'注意'也有WIFI和更多的设置。探索它你想要的。 喜欢这个

 android.provider.Settings.ACTION_WIFI_SETTINGS 

我试图打开我的应用程序的networking设置,但它是默认的function,它打开互联网只有默认的SIM卡,即SIM 1.你必须redirect用户到设置屏幕上的意图

Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); startActivity(意向);