做一个应用要支持这些网络 : wifi, 联通电信移动的3G, 移动的gprs(包括cmwap和cmnet接入点)。
是不是实现逻辑是这样的 : 先判断当前是否是cmwap接入点,如果是的话设置代理访问,否则其他网络全部都直接访问。请教高手有做个类似的么,这么连接有无问题?
是不是实现逻辑是这样的 : 先判断当前是否是cmwap接入点,如果是的话设置代理访问,否则其他网络全部都直接访问。请教高手有做个类似的么,这么连接有无问题?
解决方案 »
- 请教:为什么jpg可以png不可以
- 请问怎么修改项目可以在同一手机上安装同一android应用不同版本两次不被替换?
- mm和mmm的区别是什么?
- app发布到google market上上传图片问题
- android界面动态生成按钮问题?
- android 找错
- ListView的每一行有一个Button,点击Button后如何得到所在行的position?
- 初学android,线程间使用handle传递数据
- 小菜鸟求大神教教
- 关于httpclient的post请求,处理重定向的问题,,有经验的大神请指教啊
- Android浏览器开发的问题
- SurfaceHolder的lockCanvas(Rect rect)问题
String ipAddress = "";
try{
ipAddress = wifiIpAddress();
if(ipAddress!=null&&ipAddress.trim().length()>0){
}else{
ipAddress = this.GPRSIpAddress();
}
}catch(Exception ex){
}
return ipAddress;//有IP返回就联网
}
private String wifiIpAddress(){
String ip = "";
//获取wifi服务
WifiManager wifiManager = (WifiManager)(context).getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (wifiManager.isWifiEnabled()) {
//wifiManager.setWifiEnabled(true);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
ip = intToIp(ipAddress);
}
return ip;
}
private String intToIp(int i) {
return (i & 0xFF ) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
( i >> 24 & 0xFF) ;
}
private String GPRSIpAddress(){
try{
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();){
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();){
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()){
return inetAddress.getHostAddress().toString();
}
}
}
}catch (SocketException ex){
Log.d("GPRSIpAddress IpAddress", ex.toString());
}
return "";
}另外配上
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
这三个权限
你这段代码只处理了gprs和wifi, 那么3G呢?
如果我要区分wifi, gprs, 联通的3G, 移动的3G和 电信的3G, 能做到么?
至于你说要区分开来,这没试过,获取了IP后,要区分是哪个运营商的应该不是难题。你的情况,你最好拿真机测一下网络,能够所有异常都考虑到还是要靠实践检验的。