Android設備判斷網絡連接狀態
所需權限(AndroidManifest.xml文件中添加):
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Java代碼(MainActivity.java文件)
package com.example.androidtest;import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.NetworkInfo.State; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); boolean bFlag = isNetworkAvailable(this.getApplicationContext()); if (bFlag) { Log.i("Network state - ", "connected"); } else { Log.i("Network state - ", "disconnected"); } } /** * 判斷網絡連接狀況 * * @param ctx * @return */ public boolean isNetworkAvailable(Context ctx) { boolean bFlag = false; if (ctx != null) { ConnectivityManager conMan = (ConnectivityManager) ctx .getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan != null) { // wifi Network NetworkInfo nInfoW = conMan .getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (nInfoW != null) { State wifi = nInfoW.getState(); if (State.CONNECTED == wifi) { bFlag = true; } } if (!bFlag) { // mobile Network NetworkInfo nInfoM = conMan .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (nInfoM != null) { State mobile = nInfoM.getState(); if (State.CONNECTED == mobile) { bFlag = true; } } } } } return bFlag; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } </pre>
isNetworkAvailable方法里先做wifi連接狀態判斷,如果wifi未連接,再做2g/3g/4g...手機網連接狀態判斷。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!