Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android判斷設備網絡連接狀態及判斷連接方式的方法

Android判斷設備網絡連接狀態及判斷連接方式的方法

編輯:關於Android編程

本文實例講述了Android判斷設備網絡連接狀態及判斷連接方式的方法。分享給大家供大家參考,具體如下:

在Android開發過程中,對於一個需要連接網絡的Android設備,對設備的網絡狀態檢測是很有必要的!有很多的App都需要連接網絡。判斷設備是否已經連接網絡,並且在連接網絡的狀態下判斷是wifi無線連接還是GPRS手機網絡連接,這樣就可以在不同的網絡連接下去調用不同的方法,處理不同的事情。這些功能都寫在了下面的代碼中了!請看主要代碼如下:

/** 
* 檢測網絡是否連接 
* @return 
*/ 
private boolean checkNetworkState() {
   boolean flag = false;
   //得到網絡連接信息
   manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
   //去進行判斷網絡是否連接
   if (manager.getActiveNetworkInfo() != null) {
     flag = manager.getActiveNetworkInfo().isAvailable();
   }
   if (!flag) {
     setNetwork();
   } else {
     isNetworkAvailable();
   }
   return flag;
}
/**
* 網絡未連接時,調用設置方法
*/
private void setNetwork(){
   Toast.makeText(this, "wifi is closed!", Toast.LENGTH_SHORT).show();
   AlertDialog.Builder builder = new AlertDialog.Builder(this);
   builder.setIcon(R.drawable.ic_launcher);
   builder.setTitle("網絡提示信息");
   builder.setMessage("網絡不可用,如果繼續,請先設置網絡!");
   builder.setPositiveButton("設置", new OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
       Intent intent = null;
       /**
       * 判斷手機系統的版本!如果API大於10 就是3.0+
       * 因為3.0以上的版本的設置和3.0以下的設置不一樣,調用的方法不同
       */
       if (android.os.Build.VERSION.SDK_INT > 10) {
         intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
       } else {
         intent = new Intent();
         ComponentName component = new ComponentName(
             "com.android.settings",
             "com.android.settings.WirelessSettings");
         intent.setComponent(component);
         intent.setAction("android.intent.action.VIEW");
       }
       startActivity(intent);
     }
   });
   builder.setNegativeButton("取消", new OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
     }
   });
   builder.create();
   builder.show();
}
/**
* 網絡已經連接,然後去判斷是wifi連接還是GPRS連接
* 設置一些自己的邏輯調用
*/
private void isNetworkAvailable(){
   State gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
  State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
  if(gprs == State.CONNECTED || gprs == State.CONNECTING){
    Toast.makeText(this, "wifi is open! gprs", Toast.LENGTH_SHORT).show();
  }
  //判斷為wifi狀態下才加載廣告,如果是GPRS手機網絡則不加載!
  if(wifi == State.CONNECTED || wifi == State.CONNECTING){
    Toast.makeText(this, "wifi is open! wifi", Toast.LENGTH_SHORT).show();
    loadAdmob();
  }
}

希望本文所述對大家Android程序設計有所幫助。

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