android 之 3G/gprs

private boolean getMobileDataStatus(Context context) {
              ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

          Class<?> conMgrClass = null; // ConnectivityManager类
          Field iConMgrField = null; // ConnectivityManager类中的字段
          Object iConMgr = null; // IConnectivityManager类的引用
          Class<?> iConMgrClass = null; // IConnectivityManager类
          Method getMobileDataEnabledMethod = null; // setMobileDataEnabled方法
          
          try {
              // 取得ConnectivityManager类
              conMgrClass = Class.forName(conMgr.getClass().getName());
              // 取得ConnectivityManager类中的对象mService
              iConMgrField = conMgrClass.getDeclaredField("mService");
              // 设置mService可访问
              iConMgrField.setAccessible(true);
              // 取得mService的实例化类IConnectivityManager
              iConMgr = iConMgrField.get(conMgr);
              // 取得IConnectivityManager类
              iConMgrClass = Class.forName(iConMgr.getClass().getName());
              // 取得IConnectivityManager类中的getMobileDataEnabled(boolean)方法
              getMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod("getMobileDataEnabled");
              // 设置getMobileDataEnabled方法可访问
              getMobileDataEnabledMethod.setAccessible(true);
              // 调用getMobileDataEnabled方法
              return (Boolean) getMobileDataEnabledMethod.invoke(iConMgr);
          } catch (ClassNotFoundException e) {
              e.printStackTrace();
             } catch (NoSuchFieldException e) {
              e.printStackTrace();
             } catch (SecurityException e) {
              e.printStackTrace();
             } catch (NoSuchMethodException e) {
              e.printStackTrace();
             } catch (IllegalArgumentException e) {
              e.printStackTrace();
             } catch (IllegalAccessException e) {
              e.printStackTrace();
             } catch (InvocationTargetException e) {
                                 // TODO Auto-generated catch block
                                 e.printStackTrace();
                         }
                 return false;
     }
     
     /**
      * 移动网络开关
      */
     private void toggleMobileData(Context context, boolean enabled) {
      ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

      Class<?> conMgrClass = null; // ConnectivityManager类
      Field iConMgrField = null; // ConnectivityManager类中的字段
      Object iConMgr = null; // IConnectivityManager类的引用
      Class<?> iConMgrClass = null; // IConnectivityManager类
      Method setMobileDataEnabledMethod = null; // setMobileDataEnabled方法

      try {
       // 取得ConnectivityManager类
       conMgrClass = Class.forName(conMgr.getClass().getName());
       // 取得ConnectivityManager类中的对象mService
       iConMgrField = conMgrClass.getDeclaredField("mService");
       // 设置mService可访问
       iConMgrField.setAccessible(true);
       // 取得mService的实例化类IConnectivityManager
       iConMgr = iConMgrField.get(conMgr);
       // 取得IConnectivityManager类
       iConMgrClass = Class.forName(iConMgr.getClass().getName());
       // 取得IConnectivityManager类中的setMobileDataEnabled(boolean)方法
       setMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
       // 设置setMobileDataEnabled方法可访问
       setMobileDataEnabledMethod.setAccessible(true);
       // 调用setMobileDataEnabled方法
       setMobileDataEnabledMethod.invoke(iConMgr, enabled);
      } catch (ClassNotFoundException e) {
       e.printStackTrace();
      } catch (NoSuchFieldException e) {
       e.printStackTrace();
      } catch (SecurityException e) {
       e.printStackTrace();
      } catch (NoSuchMethodException e) {
       e.printStackTrace();
      } catch (IllegalArgumentException e) {
       e.printStackTrace();
      } catch (IllegalAccessException e) {
       e.printStackTrace();
      } catch (InvocationTargetException e) {
       e.printStackTrace();
      }
     }



	回复 支持 反对




你可能感兴趣的:(android 之 3G/gprs)