通过3G网络发送HTTP请求而不使用WiFi?
答
我不认为你可以这样做,因为在Android中,只有一个网络在任何时间点处于活动状态。因此,首先需要检查哪个网络处于活动状态,然后是否为Wi-Fi网络,然后断开连接,然后Android将回退到其他3G网络(如果没有其他Wi-Fi网络可用) ,那么你可以发送你的请求,将通过3G network.outline将通过如下所示:
ConnectivityManager cm = (ConnectivityManager)Context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni == null)
//no connectivity, abort
if(ni.getType() == ConnectivityManager.TYPE_WIFI || ni.getType() == ConnectivityManager.TYPE_WIMAX) {
WifiManager wm = (WifiManager)Context.getSystemService(Context.WIFI_SERVICE);
if(wm != null)
wm.disconnect();
//this will force android to fallback to other available n/w which is 3G
}
while(true) {
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni != null && ni.getType() == ConnectivityManager.TYPE_MOBILE && ni.isConnected()) {
//send your http request
break;
}
//sleep for some time, so that android can connect you to other n/w
}
您可能需要遍历所有活动的n/w,并断开它们,直到你找到3G网络。我假设只有一个Wi-Fi网络和一个3G网络可用。
请不要转发您没有得到答案的问题。它只有几个小时。可能需要几天的时间才能得到很好的答案,重复的问题只会污染数据库。 – 2010-08-31 04:31:21