Mic*_*evy 5 networking android connectivity wifi
有关如何在Android中检测网络连接的问题有很多./sf/answers/296731361/提供了非常详细的答案,/sf/answers/598424851/显示了识别连接到的网络类型的方法.
我们使用类似于以下代码的代码检测网络连接:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
Run Code Online (Sandbox Code Playgroud)
这使我们可以警告用户是否处于脱机状态.但是,它无法帮助我们确定用户是否具有有限的连接.连接有限的条件导致用户抱怨.这些包括:
用户连接到家庭wifi网络,但电缆调制解调器或Internet服务不可用.
用户在酒店或咖啡店中成功连接到wifi网络,但网络要求他们在获得完全网络访问权限之前登录或同意服务条款.
在这两种情况下,我们的isNetworkAvailable()测试返回true.操作系统告诉我们我们已连接到网络.但是,用户没有可用的Internet连接.
有没有一种好方法可以确定用户是否具有完全正常运行的网络连接?
我正在考虑调用轻量级Web服务来验证其连接,并在应用程序未从服务获得有效返回时警告用户.这有点矫枉过正吗?还是让其他人不得不采用类似的技巧?
| 归档时间: |
|
| 查看次数: |
2928 次 |
| 最近记录: |