首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android:稽查网络连接状态

2012-09-02 
Android:检查网络连接状态(1)在AndroidManifest.xml文件中添加必要的权限。访问网络我们需要 INTERNET 权限

Android:检查网络连接状态

(1)在AndroidManifest.xml文件中添加必要的权限。

访问网络我们需要 INTERNET 权限
检查网络状态我们需要 ACCESS_NETWORK_STATE 权限

    <!-- Internet Permissions -->    <uses-permission android:name="android.permission.INTERNET" />    <!-- Network State Permissions -->    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

(2)创建工具类ConnectionDetector.java

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;    } /** * 判断网络是否连接 * @return true/false */    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;    }}

(3)上面工具类的使用:当需要在你的应用中检查网络状态时调用isConnectingToInternet()函数,返回true或false。

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

(4)下面是一个小测试,实现单击按钮,弹出alert dialog显示网络连接状态。

在res/layout/main.xml中创建一个按钮

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >     <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Detect Internet Status" />     <Button android:id="@+id/btn_check"        android:layout_height="wrap_content"        android:layout_width="wrap_content"        android:text="Check Internet Status"        android:layout_centerInParent="true"/> </RelativeLayout>

MainActivity.java

import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.widget.Button; public class AndroidDetectInternetConnectionActivity extends Activity {     // flag for Internet connection status    Boolean isInternetPresent = false;     // Connection detector class    ConnectionDetector cd;     @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);         Button btnStatus = (Button) findViewById(R.id.btn_check);         // creating connection detector class instance        cd = new ConnectionDetector(getApplicationContext());         /**         * Check Internet status button click event         */        btnStatus.setOnClickListener(new View.OnClickListener() {             @Override            public void onClick(View v) {                 // get Internet status                isInternetPresent = cd.isConnectingToInternet();                 // check for Internet status                if (isInternetPresent) {                    // Internet Connection is Present                    // make HTTP requests                    showAlertDialog(AndroidDetectInternetConnectionActivity.this, "Internet Connection",                            "You have internet connection", true);                } else {                    // Internet connection is not present                    // Ask user to connect to Internet                    showAlertDialog(AndroidDetectInternetConnectionActivity.this, "No Internet Connection",                            "You don't have internet connection.", false);                }            }        });    }     /**     * Function to display simple Alert Dialog     * @param context - application context     * @param title - alert dialog title     * @param message - alert message     * @param status - success/failure (used to set icon)     * */    public void showAlertDialog(Context context, String title, String message, Boolean status) {        AlertDialog alertDialog = new AlertDialog.Builder(context).create();         // Setting Dialog Title        alertDialog.setTitle(title);         // Setting Dialog Message        alertDialog.setMessage(message);         // Setting alert dialog icon        alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);         // Setting OK Button        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {            public void onClick(DialogInterface dialog, int which) {            }        });         // Showing Alert Message        alertDialog.show();    }}

(5)测试结果

Internet Connection

 Android:稽查网络连接状态

No Internet Connection

Android:稽查网络连接状态

1楼lfmilaoshi昨天 23:38
也成了专家了。。。。米老师

热点排行