继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

设置/获取网络状态

红颜莎娜
关注TA
已关注
手记 125
粉丝 17
获赞 65

闲暇无事整理下以前做的小东西

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import android.content.Context;
import android.net.ConnectivityManager;
import android.util.Log;
public class MobileDataSwitch {
/** 移动数据开启和关闭
 * @param context
 * @param enabled=true开启网络    enabled=false关闭网络
 * AndroidMannifest.xml文件里添加访问权限 
 * <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />,  
 * <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />  
 */
public static void setMobileDataStatus(Context context,boolean enabled){
ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
//ConnectivityManager类
Class<?> conMgrClass = null;
//ConnectivityManager类中的字段
Field iConMgrField = null;
//IConnectivityManager类的引用
Object iConMgr = null;
//IConnectivityManager类
Class<?> iConMgrClass = null;
//setMobileDataEnabled方法
Method setMobileDataEnabledMethod = null;
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(Exception e){
e.printStackTrace();
}
}
/**
 * 获取移动数据开关状态
 * @param context
 * @param getMobileDataEnabled 传入实参"getMobileDataEnabled"
 * @return true打开状态   false关闭状态
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
public static boolean getMobileDataStatus(Context context,String getMobileDataEnabled){
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
Class cmClass = cm.getClass();
Class[] argClasses = null;
Object[] argObject = null;
Boolean isOpen = false;
try{
Method method = cmClass.getMethod(getMobileDataEnabled, argClasses);
isOpen = (Boolean)method.invoke(cm, argObject);
}catch(Exception e){
e.printStackTrace();
}
return isOpen;
}
/**
 * 设置网络  开启/关闭
 * @param mContext
 */
public void getMobileStaute(Context mContext){
boolean statue =getMobileDataStatus(mContext, "getMobileDataEnabled");
boolean statues  = ( statue == true)?false:true;
Log.v("TAG", "statues=="+statues);
setMobileDataStatus(mContext, statues);
}
}

原文链接:http://www.apkbus.com/blog-104595-58834.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP