android 关闭 网络,Android网络开启、关闭整理

package com.my.device_admin.business;

import java.lang.reflect.Method;

import android.content.Context;

import android.content.Intent;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.net.wifi.WifiManager;

import android.provider.Settings;

public class NetworkManager {

private Context context;

private ConnectivityManager connManager;

public NetworkManager(Context context) {

this.context = context;

connManager = (ConnectivityManager) this.context

.getSystemService(Context.CONNECTIVITY_SERVICE);

}

/**

* @return 网络是否链接可用

*/

public boolean isNetworkConnected() {

NetworkInfo networkinfo = connManager.getActiveNetworkInfo();

if (networkinfo != null) {

return networkinfo.isConnected();

}

return false;

}

/**

* @return wifi是否链接可用

*/

public boolean isWifiConnected() {

NetworkInfo mWifi = connManager

.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (mWifi != null) {

return mWifi.isConnected();

}

return false;

}

/**

* 当wifi不能访问网络时,mobile才会起做用

* @return GPRS是否链接可用

*/

public boolean isMobileConnected() {

NetworkInfo mMobile = connManager

.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if (mMobile != null) {

return mMobile.isConnected();

}

return false;

}

/**

* GPRS网络开关 反射ConnectivityManager中hide的方法setMobileDataEnabled 能够开启和关闭GPRS网络

*

* @param isEnable

* @throws Exception

*/

public void toggleGprs(boolean isEnable) throws Exception {

Class> cmClass = connManager.getClass();

Class>[] argClasses = new Class[1];

argClasses[0] = boolean.class;

// 反射ConnectivityManager中hide的方法setMobileDataEnabled,能够开启和关闭GPRS网络

Method method = cmClass.getMethod("setMobileDataEnabled", argClasses);

method.invoke(connManager, isEnable);

}

/**

* WIFI网络开关

*

* @param enabled

* @return 设置是否success

*/

public boolean toggleWiFi(boolean enabled) {

WifiManager wm = (WifiManager) context

.getSystemService(Context.WIFI_SERVICE);

return wm.setWifiEnabled(enabled);

}

/**

*

* @return 是否处于飞行模式

*/

public boolean isAirplaneModeOn() {

// 返回值是1时表示处于飞行模式

int modeIdx = Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0);

boolean isEnabled = (modeIdx == 1);

return isEnabled;

}

/**

* 飞行模式开关

* @param setAirPlane

*/

public void toggleAirplaneMode(boolean setAirPlane) {

Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, setAirPlane ? 1 : 0);

// 广播飞行模式信号的改变,让相应的程序能够处理。

// 不发送广播时,在非飞行模式下,Android 2.2.1上测试关闭了Wifi,不关闭正常的通话网络(如GMS/GPRS等)。

// 不发送广播时,在飞行模式下,Android 2.2.1上测试没法关闭飞行模式。

Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);

// intent.putExtra("Sponsor", "Sodino");

// 2.3及之后,需设置此状态,不然会一直处于与运营商断连的状况

intent.putExtra("state", setAirPlane);

context.sendBroadcast(intent);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值