【Android】詳解Android 網路操作

來源:互聯網
上載者:User

標籤:new   splay   access   cloc   class   androi   網路連接   fine   sys   

目錄結構:

contents structure [+]
  1. 判斷網路
    1. 判斷是否有網路連接
    2. 判斷WIFI網路是否可用
    3. 判斷MOBILE網路是否可用
    4. 擷取當前網路連接的類型資訊
  2. 監聽網路

擷取網路資訊需要在AndroidManifest.xml檔案中加入相應的許可權。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
1.判斷網路1.1 判斷是否有網路連接
public boolean isNetworkConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null) {return mNetworkInfo.isAvailable();}}return false;}
1.2判斷WIFI網路是否可用
public boolean isWifiConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (mWiFiNetworkInfo != null) {return mWiFiNetworkInfo.isAvailable();}}return false;}

這裡需要注意,該方法只是判斷當前環境下是否有可用的WIFI,並不是判斷是否已經串連上WIFI。

1.3 判斷MOBILE網路是否可用
public boolean isMobileConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (mMobileNetworkInfo != null) {return mMobileNetworkInfo.isAvailable();}}return false;}
1.4 擷取當前網路連接的類型資訊
public static int getConnectedType(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {return mNetworkInfo.getType();}}return -1;}

getType()的傳回值可以是ConnectivityManager中的TYPE_MOBILE、TYPE_WIFI、TYPE_WIMAX、TYPE_ETHERNET、TYPE_BLUETOOTH、其他類型。

2.監聽網路

 定義廣播接受者:

    BroadcastReceiver connectionReceiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mNetworkInfo = mConnectivityManager                    .getActiveNetworkInfo();            int type = -1;            if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {                type = mNetworkInfo.getType();            }            if (type == ConnectivityManager.TYPE_WIFI) {                Toast.makeText(MainActivity.this, "wifi", Toast.LENGTH_SHORT)                        .show();            } else if (type == ConnectivityManager.TYPE_MOBILE) {                Toast.makeText(MainActivity.this, "網路可用", Toast.LENGTH_SHORT)                .show();            }else if(type==-1){                Toast.makeText(MainActivity.this, "網路不可用", Toast.LENGTH_SHORT)                .show();            }else{                Toast.makeText(MainActivity.this, "未知網路", Toast.LENGTH_SHORT)                .show();            }        }    };

在合適的位置註冊:

        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        registerReceiver(connectionReceiver, intentFilter);

在合適的位置取消註冊:

unregisterReceiver(connectionReceiver);

 

【Android】詳解Android 網路操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.