android – 我要做什么来启动手机上网设置对话框?

我试图设置移动数据.但它只适用于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,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;
}

但是现在我只想启动认的移动选择对话框.如果你有任何想法,启动该对话框让我知道..谢谢提前.

.

解决方法

多SIM卡支持添加在Android的棒棒糖5.1起.在此之前,不同的手机制造商有自己的定制实现来支持Multi SIM和各自的设置.因此,如果您针对一般解决方案,则无法实现.即使在5.1,没有直接的意图推出这个特定的设置,但使用黑客你可能会提供制造商应该只使用谷歌解决方案,否则它将无法工作.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...