我对android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET
有一个问题。根据JavaDocs,这表示“表明此网络应该能够连接到互联网”。
不幸的是,这似乎无法正常工作 - 或者我在这里做错了什么。我输出了三个不同Wi-Fi网络的功能值:
有互联网访问权限的Wi-Fi。
没有互联网访问权限的Wi-Fi(我手动禁用了互联网)。
公共热点("Telekom"热点)
在这三种情况下,功能值为[Transports:WIFI Capabilities:INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN LinkUpBandwidth>=1048576Kbps LinkDnBandwidth>=1048576Kbps]
。
这是我的代码:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);
boolean capability = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET
当连接到某个Wi-Fi时,布尔值始终为true
。
如果相关的话,我测试的设备运行在Android 5.0.1 (API 21)下。我将应用编译到API级别23。
INTERNET
能力也会被设置。 - Timo Bähr