歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 怎樣檢查Android網絡連接狀態

怎樣檢查Android網絡連接狀態

日期:2017/3/1 10:16:43   编辑:Linux編程
在發送任何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