在我的应用程序中,我只有在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);
}
默认情况下,当您同时通过wifi传输两个数据时,我的体验。但是,如果你想要做反之亦然,这种方法可以帮助你setNetworkPreference。
要将您应用中的所有网络请求定向到外部Wi-Fi设备,请在Lollipop设备上调用ConnectivityManager#setProcessDefaultNetwork
,然后在Marshmallow上调用ConnectivityManager#bindProcessToNetwork
,这是直接的API替代品。
查看此博文:https://android-developers.googleblog.com/2016/07/connecting-your-app-to-wi-fi-device.html