使用ConnectivityManager
,我可以检查用户是否已连接到WiFi。如果是,我的应用程序开始下载。将数据写入本地存储后,我再次检查用户是否已连接到WiFi。如果没有,我停止下载。
现在,我想知道的是.. 如何确保HttpURLConnection
通过WiFi制作?
另一个特征是用户对下载感到自由。用户允许应用程序通过WiFi或网络下载。
假设用户已打开WiFi的情况。该应用程序检查WiFi是否可用并开始下载。之后,用户关闭WiFi或移出信号范围。 那么连接会发生什么?是否切换到使用网络?
此外,如何确保HttpURLConnection
是通过网络制作的?
总而言之,我只需要避免一个令人讨厌的情况,即用户不得不在下载时花费大量资金。这不是一个非常关键的应用程序,我这样做只是为了练习
答案 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就会自动禁用。我在一些设备中进行了测试,所有设备都有这种行为。