gpt4 book ai didi

android - 在 Android 中检测有限的网络连接?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:00 26 4
gpt4 key购买 nike

关于如何在 Android 中检测网络连接存在许多问题。 https://stackoverflow.com/a/4239019/90236提供了非常详细的答案和https://stackoverflow.com/a/8548926/90236展示了识别连接到的网络类型的方法。

我们使用类似于以下答案的代码检测网络连接:

private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

这让我们可以在用户离线时发出警告。但是,它无法帮助我们确定用户的连接是否受限。在某些情况下,连接受限会导致用户提示。这些包括:

  1. 用户已连接到家庭 wifi 网络,但电缆调制解调器或互联网服务不可用。

  2. 用户在酒店或咖啡店并成功连接到 wifi 网络,但网络要求他们在获得完全网络访问权限之前登录或同意服务条款。

在这两种情况下,我们的 isNetworkAvailable() 测试都会返回 true。操作系统告诉我们已连接到网络。但是,用户没有可用的互联网连接。

有没有一种好方法可以确定用户是否拥有功能齐全的网络连接?

我正在考虑调用轻量级 Web 服务来验证其连接性,并在应用未从该服务获得有效返回时警告用户。这是矫枉过正吗?还是其他人不得不求助于类似的技术?

最佳答案

Is there a good way to determine that the user has a fully functioning network connection?

尝试从某个地方下载一些东西。理想情况下,“某处”是您自己的服务器,用于测试设备和您的服务器之间的连接。

唉,ConnectivityManager 上没有doesTehConnexionSuck()iCanHazBandwidth() 方法。 :-)

Is this overkill?

本着“金发姑娘和三只熊”的精神,我将其描述为 justrightkill。

我们必须做the same sorts of shenanigans in Web apps也是。

关于android - 在 Android 中检测有限的网络连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17821825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com