通过WiFi下载数据时,我怎么知道我使用Wifi连接

时间:2013-08-16 15:12:38

标签: java android wifi httpurlconnection connectivity

使用ConnectivityManager,我可以检查用户是否已连接到WiFi。如果是,我的应用程序开始下载。将数据写入本地存储后,我再次检查用户是否已连接到WiFi。如果没有,我停止下载。

现在,我想知道的是.. 如何确保HttpURLConnection通过WiFi制作?

另一个特征是用户对下载感到自由。用户允许应用程序通过WiFi或网络下载。

假设用户已打开WiFi的情况。该应用程序检查WiFi是否可用并开始下载。之后,用户关闭WiFi或移出信号范围。 那么连接会发生什么?是否切换到使用网络?

此外,如何确保HttpURLConnection是通过网络制作的?

总而言之,我只需要避免一个令人讨厌的情况,即用户不得不在下载时花费大量资金。这不是一个非常关键的应用程序,我这样做只是为了练习

1 个答案:

答案 0 :(得分:1)

ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

可以从NetworkInfo中提取更多信息。只需查看this reference

您需要此权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

补充:我不确定它是Android默认设备还是设备配置,但​​只要有建立的wifi连接,3G就会自动禁用。我在一些设备中进行了测试,所有设备都有这种行为。