Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實踐--監測網絡狀態

Android實踐--監測網絡狀態

編輯:關於Android編程

Android 監測網絡狀態 我們在使用Android手機時候,一些APP需要網絡環境才能運行,所以手機需要可用的網絡,不管是2G、3G或者WIFI,甚至有一些比較耗流量的APP只能在WIFI的環境下運行,或者提供用戶自行選擇是否只能在WIFI環境下運行,作為用戶貌似後者體驗更好,那麼作為開發者,我們僅僅需要幾步就能給用戶這種體驗。 ----------------------------------------------------------------------------------------------------------------------------- 1.權限添加:APP需要聯網,以及需要訪問網絡狀態,所以在AndroidManifest.xml中添加權限。
    
    
2.狀態獲取:手機網絡有數據(2G/3G/4G)連接、WIFI連接兩種狀態,可以區分獲取和笼統的獲取。
	/**
	 * 檢查WIFI是否連接
	 * 
	 * @author Ysjian
	 * @date 2014-5-9
	 * @return 如果連接了返回true,否則返回false
	 */
	public boolean isWifiConnected() {
		ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo wifiInfo = connectivityManager
				.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
		return wifiInfo != null;
	}
	/**
	 * 檢查手機網絡(4G/3G/2G)是否連接
	 * 
	 * @author Ysjian
	 * @date 2014-5-9
	 * @return 如果連接了返回true,否則返回false
	 */
	public boolean isMobileNetworkConnected() {
		ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo mobileNetworkInfo = connectivityManager
				.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
		return mobileNetworkInfo != null;
	}
	/**
	 * 檢查是否有可用網絡
	 * 
	 * @author Ysjian
	 * @date 2014-5-9
	 * @return 存在WIFI和手機數據任意可用網絡返回true,否則返回false
	 */
	public boolean hasActivityNetwork() {
		ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		return connectivityManager.getActiveNetworkInfo() != null;
	}
3.跳轉設置:如果沒有網絡,跳轉到網絡設置界面,可以根據具體需求調用上面的三個方法之一來判斷網絡狀態。
if (!hasActivityNetwork()) {
       AlertDialog.Builder builder = new AlertDialog.Builder(this );
       builder. setTitle( "沒有可用的網絡" )
                   .setMessage( "是否對網絡進行設置?" )
                   .setPositiveButton( "是" ,
                         new DialogInterface.OnClickListener() {
                                     @Override
                                     public void onClick(DialogInterface dialog,int which) {
                                               Intent intent = null ;
                                               intent = newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
                                               startActivity(intent);
                                     }
                     })
                    .setNegativeButton( "否" ,
                           new DialogInterface.OnClickListener() {
                                   @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                               dialog.dismiss();
                                     }
                           }).show();
}
文章來源:http://blog.csdn.net/ysjian_pingcx/article/details/25461053

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