检测android上的网络连接不良

时间:2014-03-17 08:39:31

标签: android api http networking

我正在构建一个Android应用程序,通过http api调用与我们的服务器交换数据。在许多情况下,用户抱怨应用程序运行缓慢或根本不运行。

最常见的原因是网络连接不良(低3g / wifi信号或拥挤的公共wifi)。

检测错误连接的最佳方法是什么?一旦我能够检测到错误的连接,就可以使用图标或Toast消息来通知用户该情况。

我正在使用HttpUrlConnection进行api调用。

3 个答案:

答案 0 :(得分:7)

我认为你可以使用ConnectivityManager。调用getActiveNetworkInfo(),然后在收到的NetworkInfo对象上调用getDetailedState()。您可以检查连接状态以及是否为VERIFYING_POOR_LINK,但我不知道此状态处于活动状态。

此外,您可能希望按Detect Connection Changes

中所述收听网络更改

答案 1 :(得分:1)

我可能会使用延迟。在您收到请求时以及请求完成时节省时间。如果您看到的数字太高,请弹出警告。如果您要下载大文件,您可能希望切换到吞吐量(您传输的传输速度)。

答案 2 :(得分:1)

据我所知,http是"无连接" ..

你应该集中精力减少流量的大小..(压缩,划分......等)

如果你真的想测试连接,我猜你应该做ping ...每隔x秒..然后如果ping不好你可以警告用户..