对网络相关Api进行整理
@RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE)
manager.getActiveNetwork()
manager.registerNetworkCallback
新的Api中网络的不同关注面被放到的不同的对象中
manager.getNetworkInfo(network)
包括是否连接、连接状态(连接中、已连接、挂起、断开等),与其他网络设备的交互状态(DetailState, 如扫描、授权、分配地址等)
manager.getLinkProperties(network)
网络连接信息包括IP、DNS、域名、路由等信息
如果需要获取动态的网络连接信息改变,可以注册回调,并使用这个Api
manager.getNetworkCapabilities(network)
包括两方面
另外该类还能预估当前网络的上行和下行带宽
NetworkInfo : [
type: WIFI[],
state: CONNECTED/CONNECTED,
reason: (unspecified),
extra: "Liking-Dev",
roaming: false,
failover: false,
isAvailable: true
]
LinkProperties : {
InterfaceName: wlan0
LinkAddresses: [
fe80::e6db:6dff:fefa:f720/64,
172.16.100.105/24,
]
Routes: [
fe80::/64 -> :: wlan0,
172.16.100.0/24 -> 0.0.0.0 wlan0,
0.0.0.0/0 -> 172.16.100.1 wlan0,
]
DnsAddresses: [
114.114.114.114,
223.5.5.5,
]
Domains: null
MTU: 0
TcpBufferSizes: 524288,1048576,2097152,262144,524288,1048576
}
NetworkCapabilities : [
Transports: WIFI
Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED LinkUpBandwidth>=1048576Kbps
LinkDnBandwidth>=1048576Kbps
SignalStrength: -54
]