欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 監(jiān)聽網(wǎng)絡(luò)狀態(tài)方法詳解

 更新時(shí)間:2017年07月08日 15:20:52   作者:bzlj2912009596  
這篇文章主要介紹了Android 監(jiān)聽網(wǎng)絡(luò)狀態(tài)方法詳解的相關(guān)資料,需要的朋友可以參考下

Android 監(jiān)聽網(wǎng)絡(luò)狀態(tài)方法詳解

一.加入網(wǎng)絡(luò)權(quán)限

獲取網(wǎng)絡(luò)信息需要在AndroidManifest.xml文件中加入相應(yīng)的權(quán)限。

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

二.判斷手機(jī)網(wǎng)絡(luò)的幾個(gè)方案

1)判斷是否有網(wǎng)絡(luò)連接

public boolean isMobileConnected(Context context) {  
  if (context != null) {  
    ConnectivityManager mConnectivityManager = (ConnectivityManager) context  
        .getSystemService(Context.CONNECTIVITY_SERVICE);  
    NetworkInfo mMobileNetworkInfo = mConnectivityManager  
        .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  
    if (mMobileNetworkInfo != null) {  
      return mMobileNetworkInfo.isAvailable();  
    }  
  }  
  return false;  
} 

2)判斷WIFI網(wǎng)絡(luò)是否可用

public boolean isWifiConnected(Context context) {  
  if (context != null) {  
    ConnectivityManager mConnectivityManager = (ConnectivityManager) context  
        .getSystemService(Context.CONNECTIVITY_SERVICE);  
    NetworkInfo mWiFiNetworkInfo = mConnectivityManager  
        .getNetworkInfo(ConnectivityManager.TYPE_WIFI);  
    if (mWiFiNetworkInfo != null) {  
      return mWiFiNetworkInfo.isAvailable();  
    }  
  }  
  return false;  
} 

 4)獲取當(dāng)前網(wǎng)絡(luò)連接的類型信息

public static int getConnectedType(Context context) {  
  if (context != null) {  
    ConnectivityManager mConnectivityManager = (ConnectivityManager) context  
        .getSystemService(Context.CONNECTIVITY_SERVICE);  
    NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();  
    if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {  
      return mNetworkInfo.getType();  
    }  
  }  
  return -1;  
} 

在開發(fā)android應(yīng)用時(shí),涉及到要進(jìn)行網(wǎng)絡(luò)訪問(wèn),時(shí)常需要進(jìn)行網(wǎng)絡(luò)狀態(tài)的檢查,以提供給用戶必要的提醒。一般可以通過(guò)ConnectivityManager來(lái)完成該工作。

ConnectivityManager有四個(gè)主要任務(wù):

1、監(jiān)聽手機(jī)網(wǎng)絡(luò)狀態(tài)(包括GPRS,WIFI, UMTS等)
2、手機(jī)狀態(tài)發(fā)生改變時(shí),發(fā)送廣播
3、當(dāng)一個(gè)網(wǎng)絡(luò)連接失敗時(shí)進(jìn)行故障切換
4、為應(yīng)用程序提供可以獲取可用網(wǎng)絡(luò)的高精度和粗糙的狀態(tài)

當(dāng)我們要在程序中監(jiān)聽網(wǎng)絡(luò)狀態(tài)時(shí),只要一下幾個(gè)步驟即可:

1、定義一個(gè)Receiver重載其中的onReceive函數(shù),在其中完成所需要的功能,如根據(jù)WIFI和GPRS是否斷開來(lái)改變空間的外觀

connectionReceiver = new BroadcastReceiver() { 
   
  @Override 
  public void onReceive(Context context, Intent intent) { 
  ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
  NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
  NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
 
  if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) { 
   Log.i(TAG, "unconnect"); 
   // unconnect network 這時(shí)提示用戶網(wǎng)絡(luò)斷開信息 
   }else { 
 
  // connect network   可以做一些網(wǎng)絡(luò)請(qǐng)求,刷新界面 
   } 
  } 
 }; 

2、在適當(dāng)?shù)牡胤阶?cè)Receiver,可以在程序中注冊(cè),在onCreate中調(diào)用如下函數(shù)即可

IntentFilter intentFilter = new IntentFilter(); 
 intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
 registerReceiver(connectionReceiver, intentFilter); 

3、在適當(dāng)時(shí)取消注冊(cè)Receiver,可以在程序中取消,在onDestroye中調(diào)用如下函數(shù)即可:

if (connectionReceiver != null) { 
  unregisterReceiver(connectionReceiver); 
 } 

說(shuō)了這么多。其實(shí)主要是通過(guò)ConnectivityManager獲取當(dāng)前的網(wǎng)絡(luò)狀態(tài),或者監(jiān)聽網(wǎng)絡(luò)狀態(tài)的改變。這樣,當(dāng)應(yīng)用需要聯(lián)網(wǎng)時(shí),網(wǎng)絡(luò)狀態(tài)發(fā)生改變可以及時(shí)提示用戶,或者當(dāng)網(wǎng)絡(luò)重新連接時(shí)自動(dòng)獲取網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行刷新。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Android仿音樂(lè)播放器功能

    Android仿音樂(lè)播放器功能

    這篇文章主要為大家詳細(xì)介紹了Android仿音樂(lè)播放器功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Kotlin中的sam(函數(shù)式接口)詳解

    Kotlin中的sam(函數(shù)式接口)詳解

    這篇文章主要介紹了Kotlin中的sam(函數(shù)式接口)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Android 對(duì)話框sweet-alert-dialog

    Android 對(duì)話框sweet-alert-dialog

    這篇文章主要介紹了Android 對(duì)話框sweet-alert-dialog的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Android 通過(guò)代碼安裝 APK的方法詳解

    Android 通過(guò)代碼安裝 APK的方法詳解

    這篇文章主要介紹了Android 通過(guò)代碼安裝 APK的方法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)火鍋工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Android編程之防止反編譯的實(shí)現(xiàn)方法

    Android編程之防止反編譯的實(shí)現(xiàn)方法

    這篇文章主要介紹了Android編程之防止反編譯的實(shí)現(xiàn)方法,涉及Android針對(duì)運(yùn)行環(huán)境、簽名及程序相關(guān)信息的獲取與判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Android DialogUtils彈出窗工具類詳解

    Android DialogUtils彈出窗工具類詳解

    這篇文章主要為大家詳細(xì)介紹了Android DialogUtils彈出窗工具類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Android 屬性動(dòng)畫原理與DataBinding

    Android 屬性動(dòng)畫原理與DataBinding

    這篇文章主要介紹了Android 屬性動(dòng)畫原理與DataBinding的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Flutter控制組件顯示和隱藏三種方式詳解

    Flutter控制組件顯示和隱藏三種方式詳解

    這篇文章主要為大家介紹了Flutter控制組件顯示和隱藏三種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Android RefreshLayout實(shí)現(xiàn)下拉刷新布局

    Android RefreshLayout實(shí)現(xiàn)下拉刷新布局

    這篇文章主要為大家詳細(xì)介紹了Android RefreshLayout實(shí)現(xiàn)下拉刷新布局,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • OpenGL ES渲染管線概述(一)

    OpenGL ES渲染管線概述(一)

    這篇文章主要為大家詳細(xì)介紹了OpenGL ES渲染管線的簡(jiǎn)單概述,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評(píng)論