Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android網絡狀態實時監聽實例代碼(二)

Android網絡狀態實時監聽實例代碼(二)

編輯:關於Android編程

上篇文章給大家介紹了Android 網絡狀態實時監聽代碼實例(一),感興趣的朋友可以點擊了解詳情,本文接著給大家介紹android網絡狀態監聽相關知識,具體內容如下所示:

在開發android應用時,涉及到要進行網絡訪問,時常需要進行網絡狀態的檢查,以提供給用戶必要的提醒。一般可以通過ConnectivityManager來完成該工作。

ConnectivityManager有四個主要任務:

1、監聽手機網絡狀態(包括GPRS,WIFI, UMTS等)

2、手機狀態發生改變時,發送廣播

3、當一個網絡連接失敗時進行故障切換

4、為應用程序提供可以獲取可用網絡的高精度和粗糙的狀態

當我們要在程序中監聽網絡狀態時,只要一下幾個步驟即可:

1、定義一個Receiver重載其中的onReceive函數,在其中完成所需要的功能,如根據WIFI和GPRS是否斷開來改變空間的外觀或者提示是否能訪問網絡

package com.bsharksdk.receiver;
import com.bsharksdk.main.BSharkApi;
import com.bsharksdk.ui.BSToast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
/**
* @author Javen
* 
*/
public class ConnectionChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
BSToast.showLong(context, "網絡不可以用");
//改變背景或者 處理網絡的全局變量
}else {
//改變背景或者 處理網絡的全局變量
}
}
} 

2、在適當的地方注冊Receiver,可以在程序中注冊,在onCreate中調用如下函數即可:

private void registerReceiver(){
IntentFilter filter=new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
myReceiver=new ConnectionChangeReceiver();
this.registerReceiver(myReceiver, filter);
} 

3、在適當時取消注冊Receiver,可以在程序中取消,在onDestroye中調用如下函數即可:

private void unregisterReceiver(){
this.unregisterReceiver(myReceiver);
} 

記得在 Activity中 設置變量 private ConnectionChangeReceiver myReceiver;

記得添加訪問網絡需要的權限

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

以上所述是小編給大家介紹的Android網絡狀態實時監聽實例代碼(2),希望對大家有所幫助!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved