歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

怎樣檢查Android網絡連接狀態

在發送任何HTTP請求前最好檢查下網絡連接狀態,這樣可以避免異常。這個教程將會介紹怎樣在你的應用中檢測網絡連接狀態。
創建新的項目
1.在Eclipse IDE中創建一個新的項目並把填入必須的信息。 File->New->Android Project 2.創建新項目後的第一步是要在AndroidManifest.xml文件中添加必要的權限。
  • 為了訪問網絡我們需要 INTERNET 權限
  • 為了檢查網絡狀態我們需要 ACCESS_NETWORK_STATE 權限
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.detectinternetconnection"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk android:minSdkVersion="8" />
 
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".AndroidDetectInternetConnectionActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
    <!-- Internet Permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
 
    <!-- Network State Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 
</manifest>

3.創建一個新的類,名為ConnectionDetector.java,並輸入以下代碼。 ConnectionDetector.java

package com.example.detectinternetconnection;
 
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
 
public class ConnectionDetector {
 
    private Context _context;
 
    public ConnectionDetector(Context context){
        this._context = context;
    }
 
    public boolean isConnectingToInternet(){
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
          if (connectivity != null)
          {
              NetworkInfo[] info = connectivity.getAllNetworkInfo();
              if (info != null)
                  for (int i = 0; i < info.length; i++)
                      if (info[i].getState() == NetworkInfo.State.CONNECTED)
                      {
                          return true;
                      }
 
          }
          return false;
    }
}

4.當你需要在你的應用中檢查網絡狀態時調用isConnectingToInternet()函數,它會返回true或false。

ConnectionDetector cd = new ConnectionDetector(getApplicationContext());
 
Boolean isInternetPresent = cd.isConnectingToInternet(); // true or false

Copyright © Linux教程網 All Rights Reserved