Android手机大部分支持WIFI、GSM、3G网络,但每次连接网络肯定只能使用其中一种。有些程序(比如:运营商定制的)还必须要求使用特定的网络(如:CMWAP、CTWAP等等),如果当前手机连接的网络不是这些指定的网络,这时的程序处理可能是跳转到网络设置界面让用户手动设置,也有可能是程序自动却换网络(从CMNET切换到CMWAP)。
切换网络的过程是先关闭当前的网络,然后再启动新的网络,这个过程需要一定的时间。可能程序这时需要知道新的网络连接成功后自动登陆,那怎么知道几时连接成功呢?这个时间需要多久呢?
也许用一个线程去监听网络状态可行,我没试过。
我们可以用另外一种方法,PhoneStateListener
没错,你没看错,就是用PhoneStateListener。很多应用PhoneStateListener都是监听来电去电,PhoneStateListener还可以监听网络断开、正在连接和连接成功。
直接看代码吧
Java代码
final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.listen(new PhoneStateListener(){
@Override
public void onDataConnectionStateChanged(int state) {
switch(state){
case TelephonyManager.DATA_DISCONNECTED://网络断开
break;
case TelephonyManager.DATA_CONNECTING://网络正在连接
break;
case TelephonyManager.DATA_CONNECTED://网络连接上
break;
}
}
}, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
只要重载onDataConnectionStateChanged方法,根据state判断做相应的处理。
分享到:
相关推荐
Android 网络连接状态变更 Android 网络连接状态变更 Android 网络连接状态变更
其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就可以实现网络的监听。 1、添加访问网络和获取网络...
上篇文章给大家介绍了...1、监听手机网络状态(包括GPRS,WIFI, UMTS等) 2、手机状态发生改变时,发送广播 3、当一个网络连接失败时进行故障切换 4、为应用程序提供可以获取可用网络的高精度和粗糙的状态 当
Android 监听网络状态方法详解 一.加入网络权限 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。 二.判断手机网络的几个方案 1)判断是否有网络连接 public boolean isMobileConnected(Context...
Android实例源码-应用启动应用退出&网络判断类安卓源代码(12例) 3G和wifi的切换监听 ...网络连接状态检测 获取手机应用信息 返回键退出程序的两种方式 闪屏加退出提示应用 隐藏安装包图标使用其他应用启动本应用
1、监听手机网络状态(包括GPRS,WIFI, UMTS等) 2、手机状态发生改变时,发送广播 3、当一个网络连接失败时进行故障切换 4、为应用程序提供可以获取可用网络的高精度和粗糙的状态当我们要在程序中监听网络状态时,...
设计和实现一个基于Java的五子棋手机网络对战游戏涉及以下方面: 技术选择: Java编程语言:作为主要开发语言,提供跨平台的特性,适合移动应用的开发。 Android平台:用于移动端应用程序的开发,提供了丰富的UI...
添加蓝牙连接状态监听,添加开关蓝牙接口 2018.3.29 wifi工具类添加密码错误监听 手机工具类添加电量监听 运行内存修复 蓝牙工具类添加蓝牙扫描监听和取消 时间工具类修复倒计时方法 添加停止倒计时方法 ...
导致手机中毒,信息被破坏,另外还有一些木马会潜伏在手机里伺机启动,以不易察觉的方式监听用户通话,读取通话内容以及手机中的网络交易、投资等数据,同时启动实时上传程序,将这些信息上传至不法分子搭建的服务器...
adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。借助adb工具,我们可以管理设备或手机模拟器的...
在满速随路控制信道(SACCH)上发出控制指令,然后手机返回空闲状态,并监听BCCH和CCCH共控制信道上的信息。此时手机已经做好了寻呼的准备工作。 一、 机流程 用户监测BCCH时,必须与相近的基站取得同步。通过接收...
当我们的手机进入到已知(PS:这个wlan网络必须是已经成功连接的)的wlan网络覆盖范围时,手机可以利用这个高速的wlan网络,那么我们第三方应用程序就有机会利用这个高带宽的网络接口进行通讯。程序中可以通过...
adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。 借助adb工具,我们可以管理设备或手机模拟器...
2、服务器端工作流程 (1)创建服务器端套接字并绑定到一个端口上 (2)套接字设置监听模式等待连接请求 (3)接受连接请求后进行通信 (4)返回,等待赢一个连接请求 3、客户端工作流程 (1)创建客户端套接字(指定服务器...
* 设备进入初始化状态,开启混监听所有网络数据包,此时LCD显示"In the distribution network......",表示设备已进入混监听模式。 * 手机连上自己的WiFi,开启APP(EspTouch软件)软件,输入手机所在WiFi密码,请求...
16.SQL杀手蠕虫病毒发作的特征是什么(A) (A)大量消耗网络带宽(B)攻击个人PC终端(C)破坏PC游戏程序(D)攻击手机网络 17.当今IT的发展与安全投入,安全意识和安全手段之间形成(B) (A)安全风险屏障(B)安全风险缺口(C)...
* A)SARS B)SQL 杀手蠕虫(正确答案) C)手机病毒 D)小球病毒 16.SQL 杀手蠕虫病毒发作的特征是什么()[单选题] * A)大量消耗网络带宽(正确答案) B)攻击个人 PC 终端 C)破坏 PC 游戏程序 D)攻击手机网络 17....
确认连接状态。 adb devices 如果能看到 <device-ip-address>:5555 device 说明连接成功。 如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行 adb connect <device-ip-address> 那...
实例069: 监听手机拨接状态 220 实例070: 检查短信是否发送成功 223 第6章 图形图像实例集锦 229 实例071: 在屏幕中绘制一个矩形 229 实例072: 在屏幕中绘制一个画布 232 实例073: 实现水纹的透明效果 235 ...
20、Android网络交互判断网络连接的例子 共1个目标文件!简单。get方式访问一个url! 21、Android异步加载源码示例 共5个目标文件!简单。异步加载,通过异步加载外部网站的多张图片,来介绍和演示Android环境下...