歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 監控網絡狀態

Android 監控網絡狀態

日期:2017/3/1 10:25:54   编辑:Linux編程
  1. public static boolean isNetworkAvailable(Context context) {
  2. ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
  3. if (connectivity == null) {
  4. Log.i("NetWorkState", "Unavailabel");
  5. return false;
  6. } else {
  7. NetworkInfo[] info = connectivity.getAllNetworkInfo();
  8. if (info != null) {
  9. for (int i = 0; i < info.length; i++) {
  10. if (info[i].getState() == NetworkInfo.State.CONNECTED) {
  11. Log.i("NetWorkState", "Availabel");
  12. return true;
  13. }
  14. }
  15. }
  16. }
  17. return false;
  18. }

上面這個方法就是判斷網絡是否連接的代碼,返回true表示有網絡,返回false表示無網絡。 在Android網絡應用程序開發中,經常要判斷網絡連接是否可用,因此經常有必要監聽網絡狀態的變化。android的網絡狀態監聽可以用BroadcastReceiver來接收網絡狀態改變的廣播,具體實現如下:

  1. @Override
  2. public void onReceive(Context context, Intent intent) {
  3. Log.e(TAG, "網絡狀態改變");
  4. boolean success = false;
  5. //獲得網絡連接服務
  6. ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
  7. // State state = connManager.getActiveNetworkInfo().getState();
  8. State state = connManager.getNetworkInfo(
  9. ConnectivityManager.TYPE_WIFI).getState(); // 獲取網絡連接狀態
  10. if (State.CONNECTED == state) { // 判斷是否正在使用WIFI網絡
  11. success = true;
  12. }
  13. state = connManager.getNetworkInfo(
  14. ConnectivityManager.TYPE_MOBILE).getState(); // 獲取網絡連接狀態
  15. if (State.CONNECTED != state) { // 判斷是否正在使用GPRS網絡
  16. success = true;
  17. }
  18. if (!success) {
  19. Toast.makeText(LocationMapActivity.this, "您的網絡連接已中斷", Toast.LENGTH_LONG).show();
  20. }
  21. }
在Activity的onCreate中:
  1. //注冊網絡監聽
  2. IntentFilter filter = new IntentFilter();
  3. filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
  4. registerReceiver(mNetworkStateReceiver, filter);
  5. //在Activity中的onDestroy中:'
  6. unregisterReceiver(mNetworkStateReceiver); //取消監聽
Copyright © Linux教程網 All Rights Reserved