android 检测是否有网络连接

android 检测是否有网络连接,第1张

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

1)判断是否有网络连接

1 public boolean isNetworkConnected(Context context) {

2 if (context != null) {

3 ConnectivityManager mConnectivityManager = (ConnectivityManager) context

4 .getSystemService(Context.CONNECTIVITY_SERVICE)

5 NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo()

6 if (mNetworkInfo != null) {

7 return mNetworkInfo.isAvailable()

8 }

9 }

10 return false

11 }

https://www.cnblogs.com/fnlingnzb-learner/p/7531811.html

下面咱们讨论下Android手机判断网络链接状态的技术实现吧

目前Android *** 作系统的手机大部分支持WIFI,

GSM,3G网络通信

,但是每次链接到网络时只能选择一种链接方式,

比如运营商定制的,还必须要求特定的网络环境(CMWAP,CTWAP等)如果要切换网络还需要先关闭现有的网络,

然后再启动新的网络,这个转换过程还需要一定的时间,

可能程序这时还需要知道心的网络是否链接成功后自动登录到新的网络服务器中,

也许用一个线程去监听网络状态是否链接成功;

我们可以用另外一种方法,PhoneStateListener

没错,你没看错,就是用PhoneStateListener。

很多应用PhoneStateListener都是监听来电去电,PhoneStateListener还可以监听网络断开、

正在连接和连接成功。

 1 final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE) 

 2 mTelephonyMgr.listen(new PhoneStateListener(){

 3 

 4 @Override

 5 public void onDataConnectionStateChanged(int state) {

 6 switch(state){

 7 case TelephonyManager.DATA_DISCONNECTED://网络断开

 8break

 9 case TelephonyManager.DATA_CONNECTING://网络正在连接

10break

11 case TelephonyManager.DATA_CONNECTED://网络连接上

12break

13 }14 }15 16 }PhoneStateListener.LISTEN_DATA_CONNECTION_STATE) 

我们只要重载onDataConnectionStateChanged方法,根据state判断做相应的处理。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10002727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存