当前位置:编程学习 > wap >>

Android应用开发,上网接入点自动优先选择wifi,如何实现?

Android应用开发,上网接入点分好多种,最理想状况是有WIFI的时候提示选择WIFI,或自动选择;没有WIFI的时候才选择运营商2/3G网络,那么该怎么实现?谢谢大侠相救 --------------------编程问答-------------------- wifi接入,3G模块自动掉电的。 这不属于应用开发范畴啊,android设备驱动一般都是这样写的。
你的手机设备不是? 能实现wifi 和 3G 共存? 哪个牌子我要见识一下嘿~  --------------------编程问答-------------------- 我的下载中有个智能切换wifi的,至于换2g 3g的这个那个木有做过哇。 --------------------编程问答--------------------
引用 1 楼 yiyaaixuexi 的回复:
wifi接入,3G模块自动掉电的。 这不属于应用开发范畴啊,android设备驱动一般都是这样写的。
你的手机设备不是? 能实现wifi 和 3G 共存? 哪个牌子我要见识一下嘿~

从WIFI区域走开了,会是什么样的提示?会自动提示你WIFI没信号,请选择3G接入点吗?
从3G区域走到WIFI区域呢? --------------------编程问答-------------------- 可以这么理解wifi的优先等级高于3G。如果开着wifi,只要搜索到匹配信号(曾经输入过对应密码的),就使3G模块立即掉电,不管此处有无3G信号。若搜索不到wifi信号,就自动搜索3G信号。 --------------------编程问答-------------------- /**
 * 根据手机网络及客户端配置,选择相应网络进行登录
 */
public void checkNet() {
/* 判断客户端优选网络 */
if (getFirstNet()) {
logger.d("----....----.....---->>>first net is wifi");
/* 判断 机器wifi是否是打开状态 */
if (mWifiAccessManager.isWifiEnable()) {
wifiInfo = mWifiAccessManager.getWifiInfo();
logger.d("----....----.....---->>>wifiEnabled is true");
/* 判断是否已经连上附着在wifi热点上 */
if (wifiInfo.getNetworkId() != -1 && wifiInfo.getSSID() != null) {
/* 附着在某个WIFI热点之上 */
logger.d("...---->>>WIFI has binded a wifi hot");
GlobalSetting.WLAN_NAME = wifiInfo.getSSID();
checkWifiTaskHandler.sendEmptyMessageDelayed(0, 2000);
} else {
/* 沒有附着连接在任何wifi热点上 */
logger.d("...---->>>WIFI hasn't binded any wifi hot");
/* UI改变状态,通知搜索热点 ,弹出相应对话框 */
handler.sendEmptyMessage(R.string.search_wlan);
showMyDialog(Contants.DIALOG_TYPE_CHOICE_NET);
}
} else {
GlobalSetting.CURRENTNETTYPE = GlobalSetting.WAP;
sendLogin();
}
} else {
GlobalSetting.CURRENTNETTYPE = GlobalSetting.WAP;
sendLogin();
}
}

/**
 * @return true:优选wlan false:优选cmwap
 */
public boolean getFirstNet() {
return settings.getBoolean(Args.FIRST_NET, true);
} --------------------编程问答--------------------
引用 5 楼 lww200888 的回复:
/**
* 根据手机网络及客户端配置,选择相应网络进行登录
*/
public void checkNet() {
/* 判断客户端优选网络 */
if (getFirstNet()) {
logger.d("----....----.....---->>>first net is wifi");
/* 判断 机器wifi是否是打开状态 */
if (mWifiAccessMa……


精华!如果要重新选择热点,需要用到哪个类? --------------------编程问答--------------------
引用 4 楼 yiyaaixuexi 的回复:
可以这么理解wifi的优先等级高于3G。如果开着wifi,只要搜索到匹配信号(曾经输入过对应密码的),就使3G模块立即掉电,不管此处有无3G信号。若搜索不到wifi信号,就自动搜索3G信号。

呵呵,又学到一课了 --------------------编程问答-------------------- WifiManager wm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
     if (wm.startScan()) {
     List<ScanResult> wifis  = wm.getScanResults();
     Toast.makeText(this, "有wifi", Toast.LENGTH_LONG).show();
     } else {
     Toast.makeText(this, "没有wifi", Toast.LENGTH_LONG).show();
     } --------------------编程问答-------------------- 系统默认的是WIFI吧
setting provider里面default.xml有可以设置
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,