最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ò)訪問,時(shí)常需要進(jìn)行網(wǎng)絡(luò)狀態(tài)的檢查,以提供給用戶必要的提醒。一般可以通過ConnectivityManager來完成該工作。

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是否斷開來改變空間的外觀

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); 
 } 

說了這么多。其實(shí)主要是通過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)文章

最新評(píng)論

利津县| 乐业县| 东城区| 黄石市| 南安市| 胶南市| 五台县| 监利县| 曲沃县| 永修县| 永清县| 孟连| 延长县| 板桥市| 常德市| 贞丰县| 依兰县| 深水埗区| 梓潼县| 贺兰县| 东乡族自治县| 陵水| 丰台区| 玉环县| 商南县| 方城县| 镇江市| 紫金县| 南靖县| 武宁县| 青浦区| 霍山县| 安徽省| 五莲县| 石河子市| 娱乐| 襄樊市| 娄底市| 沐川县| 渑池县| 新乡市|