Android - 检查用户连接的连接是否有互联网连接

Android - Check if connection that user is connected has internet connection

我正在使用 getActiveNetworkInfo 来获取用户已连接的网络,并使用 isConnected 来验证它是否已连接。我正在使用以下代码执行此操作:

val connectivityManager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager?
val activeNetworkInfo = connectivityManager?.activeNetworkInfo
return activeNetworkInfo?.isConnected == true

问题是,如果用户连接到没有互联网连接的 wifi,isConnected returns 为真。

如何验证此网络连接是否有互联网连接?

我知道我可以对某些服务执行请求以验证用户是否已连接,但我的目的是在应用程序内为用户显示一个横幅,通知他没有互联网连接。因此,例如当他请求某些东西时,我可以通知用户它不会工作并且不显示加载然后显示错误消息。

继续合并服务以验证互联网连接不是任何一种替代方法,它在数据和电池使用方面效率不高。

我认为 Android 不支持检查所连接的网络是否真的可用。唯一的方法是自己 ping 某个站点,或者在用户请求连接后显示错误消息横幅。