通过3G网络发送HTTP请求而不使用WiFi?

问题描述:

首先,Android手机连接3G网络和WiFi。 这时候我想通过3G网络发送http请求而不使用wifi。 我该怎么办?通过3G网络发送HTTP请求而不使用WiFi?

+0

请不要转发您没有得到答案的问题。它只有几个小时。可能需要几天的时间才能得到很好的答案,重复的问题只会污染数据库。 – 2010-08-31 04:31:21

我不认为你可以这样做,因为在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网络可用。