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

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

 更新時間: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ò)的幾個方案

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

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

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

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

1、定義一個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 這時提示用戶網(wǎng)絡(luò)斷開信息 
   }else { 
 
  // connect network   可以做一些網(wǎng)絡(luò)請求,刷新界面 
   } 
  } 
 }; 

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

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

3、在適當(dāng)時取消注冊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)時,網(wǎng)絡(luò)狀態(tài)發(fā)生改變可以及時提示用戶,或者當(dāng)網(wǎng)絡(luò)重新連接時自動獲取網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行刷新。

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

相關(guān)文章

最新評論

河池市| 金门县| 历史| 赤峰市| 方山县| 四子王旗| 乌兰浩特市| 辽宁省| 清镇市| 泾阳县| 九台市| 铜山县| 马山县| 都江堰市| 儋州市| 梁平县| 长阳| 镇沅| 绥棱县| 海林市| 舒兰市| 微博| 平顶山市| 尚义县| 思南县| 诸城市| 苏尼特左旗| 康保县| 景洪市| 海安县| 射洪县| 清远市| 兴宁市| 尚义县| 新乡市| 蓝山县| 寻乌县| 铁岭市| 郯城县| 高碑店市| 运城市|