最近项目中遇到个问题,就是手机连着一个路由wifi热点,这个路由没有连在公网上,然后手机的移动(非中国移动)数据网络打开,SDK是否有相关API可以强制让应用走移动网络?或者说调用了这个API,APK里可以浏览一个网页?
------解决思路----------------------
强制走应该没吧。
不过你使用该功能可以试着判断是否联网,是否开启了wifi
//是否为wifi状态
ConnectivityManager connManager = (ConnectivityManager) this
.getSystemService(CONNECTIVITY_SERVICE);
// 获取代表联网状态的NetWorkInfo对象
NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
// 获取当前的网络连接是否可用
boolean available = networkInfo.isAvailable();
if(available){
Log.i("通知", "当前的网络连接可用");
}
else{
Log.i("通知", "当前的网络连接可用");
}
State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
if(State.CONNECTED==state){
Log.i("通知", "GPRS网络已连接");
}
依据你的需要给出提示。不过不太人性化,毕竟大多数人是有wifi选wifi
------解决思路----------------------
开关在用户而不在普通的应用,不然手机的主人不再是主人了。不过如果是定制的系统当然可以这样实现,把数据打开,WiFi关闭。
------解决思路----------------------
这个问题应该由另一个方面来理解, 在WIFI连接成功的情况下,移动数据默认是关闭的.
如果无法连网, 可以尝试关掉WIFI打开移动数据, 但是这种逻辑确实太霸道了.
------解决思路----------------------
定制rom,因为从rom层级就决定了,wifi连接状态下走wifi,移动数据关闭。从楼上的文字看,其实lz这个需求有一些矫情,wifi内网,但是需要客户端联网,其实没有任何实际意义。无论是安全性上还是其他特性上。