赞
踩
监听网络变化方式
权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
getAllNetworkInfo(): 返回所有网络信息
getActiveNetworkInfo():获取当前激活的网络连接信息
getNetworkForType(): 获取指定类型的网络
requestNetwork(...) : 请求建立某种类型的网络
setAirplaneMode(): 开启飞行模式
addDefaultNetworkActiveListener() : 监听默认网络连接是否激活
registerNetworkCallback() : 监听某个网络请求的状态,可用时进行回调
unregisterNetworkCallback():与 registerNetworkCallback 成对出现
connectivityManager.addDefaultNetworkActiveListener(new ConnectivityManager.OnNetworkActiveListener() {
@Override public void onNetworkActive() {
Log.e(TAG, "Active ==>"); //无论是否成功链接外网,只要有一定量的数据传输就会间隔有回调
}
});
connectivityManager.requestNetwork(new NetworkRequest.Builder().build(), new ConnectivityManager.NetworkCallback() { /** * 网络可用的回调 * */ @Override public void onAvailable(Network network) { super.onAvailable(network); Log.e("lzp", "onAvailable"); } /** * 网络丢失的回调 * */ @Override public void onLost(Network network) { super.onLost(network); Log.e("lzp", "onLost"); } /** * 当建立网络连接时,回调连接的属性 * */ @Override public void onLinkPropertiesChanged(Network network, LinkProperties linkProperties) { super.onLinkPropertiesChanged(network, linkProperties); Log.e("lzp", "onLinkPropertiesChanged"); } /** * 按照官方的字面意思是,当我们的网络的某个能力发生了变化回调,那么也就是说可能会回调多次 * * 之后在仔细的研究 * */ @Override public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) { super.onCapabilitiesChanged(network, networkCapabilities); Log.e("lzp", "onCapabilitiesChanged"); } /** * 在网络失去连接的时候回调,但是如果是一个生硬的断开,他可能不回调 * */ @Override public void onLosing(Network network, int maxMsToLive) { super.onLosing(network, maxMsToLive); Log.e("lzp", "onLosing"); } /** * 按照官方注释的解释,是指如果在超时时间内都没有找到可用的网络时进行回调 * */ @Override public void onUnavailable() { super.onUnavailable(); Log.e("lzp", "onUnavailable"); } });
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。