现在,我有一个可以与 WiFi 配合使用的应用程序,但是当我去移动提供商网络时,我的应用程序无法正常工作。我维护了一项检查网络的后台服务,但我不知道如何处理网络切换 WiFi 到移动和移动到 WiFi?我不知道如何处理 WiFi 到移动网络的切换,因为 WiFi 已经启用并且我不在 WiFi 覆盖范围内;在这种情况下,我想自动切换到移动网络,反之亦然。我的方法如下,但不起作用:
String networkStatus = "disconnected";
int netType = 0;
try{
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager != null ){
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if(networkInfo != null){
netType = networkInfo.getType();
Log.d("Log", "connetion is available");
}else {
Log.d("Log", "connetion is not available");
return networkStatus;
}
// if(networkInfo.isAvailable()){ // Old one
if(networkInfo.isAvailable() && networkInfo.isConnected()){ // New change added here
if(netType == ConnectivityManager.TYPE_WIFI)
{}
else if(netType == ConnectivityManager.TYPE_MOBILE )
{}
}
}
}catch(Exception e){
Log.d("Log", "checkNetworkConnection" + e.toString());
return networkStatus;
}
我已经阅读了很多帖子,但还是听不懂。任何人都可以给我任何想法或网址,我可以在其中获得相同的实现方法吗?
提前致谢。
最佳答案
我得到了解决方案:
String networkStatus = "disconnected";
int netType = 0;
try{
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager != null ){
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if(networkInfo != null){
netType = networkInfo.getType();
Log.d("Log", "connetion is available");
}else {
Log.d("Log", "connetion is not available");
return networkStatus;
}
// if(networkInfo.isAvailable()){ // Old one
if(networkInfo.isAvailable() && networkInfo.isConnected()){ // New change added here
if(netType == ConnectivityManager.TYPE_WIFI)
{}
else if(netType == ConnectivityManager.TYPE_MOBILE )
{}
}
}
}catch(Exception e){
Log.d("Log", "checkNetworkConnection" + e.toString());
return networkStatus;
}
关于android - 如何以编程方式处理 WiFi 到移动网络的切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205720/