//region 移动数据设置
/**
* 设置启用数据流量
*/
public final void setMobileNetEnable(Context context) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Object[] arg = null;
try {
boolean isMobileDataEnable = invokeMethod(context, "getMobileDataEnabled",
arg);
if (!isMobileDataEnable) {
invokebooleanArgMethod(context, "setMobileDataEnabled", true);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 设置不启用数据流量
*/
public final void setMobileNetUnable(Context context) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Object[] arg = null;
try {
boolean isMobileDataEnable = invokeMethod(context, "getMobileDataEnabled",
arg);
if (isMobileDataEnable) {
invokebooleanArgMethod(context, "setMobileDataEnabled", false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean invokeMethod(Context context, String methodName, Object[] arg)
throws Exception {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Class ownerClass = mConnectivityManager.getClass();
Class[] argsClass = null;
if (arg != null) {
argsClass = new Class[1];
argsClass[0] = arg.getClass();
}
Method method = ownerClass.getMethod(methodName, argsClass);
boolean isOpen = (boolean) method.invoke(mConnectivityManager, arg);
return isOpen;
}
public Object invokebooleanArgMethod(Context context, String methodName, boolean value)
throws Exception {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Class ownerClass = mConnectivityManager.getClass();
Class[] argsClass = new Class[1];
argsClass[0] = boolean.class;
Method method = ownerClass.getMethod(methodName, argsClass);
return method.invoke(mConnectivityManager, value);
}
//endregion
08-15
08-15