首页 文章

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

提问于
浏览
0

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

现在,我想知道的是.. how do I ensure that the HttpURLConnection made is via WiFi ?

另一个特征是用户对下载的开放态度 . 用户允许应用程序通过WiFi或网络下载 .

假设用户已打开WiFi的场景 . 该应用程序检查WiFi是否可用并开始下载 . 之后,用户关闭WiFi或移出信号范围 . What happens to the connection then? Does it switch over to using network?

另外, how do I ensure that the HttpURLConnection is made via network?

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

1 回答

  • 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默认设备还是设备配置,但无论何时 Build WiFi连接,3G都会自动禁用 . 我在一些设备上测试过,所有这些都有这种行为 .

相关问题