据我所知,硬件/操作系统决定哪个网络将执行我的应用程序的请求,如果MobileData和WiFi网络都打开,请在此处通过以下答案判断:In Android, if both mobile and wifi networks are available, which one is used?。
即使WiFi和数据网络都可用,我是否可以指示我的网络请求仅使用WiFi?
我正在尝试解决此问题:用户的设置显示"请勿使用移动数据"如果移动数据打开(可能是收费),应该禁止应用程序发送网络请求。
但是,如果我的链接问题的答案确实如此,那意味着如果移动设备和WiFi都启用,则无法保证WiFi优先于移动设备,移动设备仍将执行请求,并且将向用户收费。 / p>
在我的代码中,我检查可用的网络连接类型,以及该设置是否开启("请勿使用移动数据")我只在WiFi处于开启且MobileData为的情况下执行请求关闭。如果两者都为ON,我不会执行请求以保护用户免于被收费。
然而,很难向同事解释这一点,所以我在想 - 是否可以指示我的应用程序的网络请求仅通过WiFi执行,即使WiFi和MobileData同时打开?< / p> PS:我刚刚发现一个完全相反的意见,说明如果MobileData和WiFi都打开,所有请求都将通过WiFi执行: https://android.stackexchange.com/questions/17774/how-can-i-tell-that-my-phone-uses-the-wi-fi-connection-for-data-traffic
我不确定该相信谁。
编辑:我找到了一些应该完成这项工作的代码片段: Send request over Mobile data when WIFI is ON.(Android L)但我不知道如何测试它们以及它们是否真的按照我想要的方式进行测试。How to use data connection instead of WIFI when both are enabled?