在我的应用程序中,我只有在Wi-Fi可用的情况下才能发送数据。 我可以检查wi-fi或移动数据是否可用,但是当wi-fi和移动数据都处于活动状态时,我如何处理 ?在这种情况下如何强制使用Wi-Fi?
private static void logNetworkState() {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
String logStr = "Network state: ";
if (wifi.isAvailable()) {
logStr+= " wi-fi avalibale;";
}
if (mobile.isAvailable()) {
logStr+= " mobile network avaliable";
}
log(logStr);
}
答案 0 :(得分:0)
如果两者都默认处于活动状态,则数据将通过WI-FI路由。但这又取决于底层网络的实施。
通常我使用 connectivymanager.startusingnetworkfeature()来强制它使用移动数据。再次,上述方法的参数是特定于实现的
答案 1 :(得分:0)
默认情况下,当您同时通过wifi传输这两个数据时,我的体验。但是,如果您想要反之亦然,这种方法可以帮助您 setNetworkPreference 。
答案 2 :(得分:0)
要将您应用中的所有网络请求定向到外部Wi-Fi设备,请在Lollipop设备上拨打ConnectivityManager#setProcessDefaultNetwork
,然后在Marshmallow上拨打ConnectivityManager#bindProcessToNetwork
,这是直接替换API。
查看此博文:https://android-developers.googleblog.com/2016/07/connecting-your-app-to-wi-fi-device.html