打开/关闭移动网络连接编程在android果冻豆



我使用下面的代码来打开/关闭移动网络。

        final ConnectivityManager conman = (ConnectivityManager) getApplicationContext().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, ON);

我用Android 2.3测试了这段代码。4.0 X。X和4.1.X。它只支持2.3版本。X和4.0。1.X.

我得到java.lang.NoSuchFieldException: mService异常,而测试与Android果冻豆。

我的问题还有别的解决办法吗?我在manifest文件中添加了所有必需的权限
   try
              {
    dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
              } 
              catch (SecurityException e1) 
              {
                e1.printStackTrace();
              } 
              catch (NoSuchMethodException e1) 
              {
                e1.printStackTrace();
              }
                dataMtd.setAccessible(true); 
               try {
                dataMtd.invoke(conm,true);

              } 
}

其中datamtd是一个方法。试试这个,我的朋友。我发现它成功在我以前的应用程序。希望这可以帮助你。对不起,如果没有,因为我不是很有经验。:)

最新更新