Android 判断网络是否可用

来源:互联网 发布:江西行知教育集团 编辑:程序博客网 时间:2024/05/21 04:17

       目前绝大部分的Android App 都需要网络,在没有网络的情况下,很多App的很多功能无法使用甚至不能运行。在Application启动之前需要检查网络是否可用,给用户一些提示去设置网络连接或者弹出对话框告知用户,在缺乏网络支持的情况下,App无法正常启动。今天找到了一个检查网络连接的方法。记录如下:

       1.NetWorkActivity

package com.augmentum.example;import com.example.androidexample.R;import android.app.Activity;import android.content.Context;import android.net.ConnectivityManager;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class NetWorkActivity extends Activity {private TextView txtView;private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.network);txtView = (TextView)findViewById(R.id.txtNetworkStatus);btn = (Button)findViewById(R.id.btnCheckNetwork);btn.setOnClickListener(listener);}private OnClickListener listener = new OnClickListener(){@Overridepublic void onClick(View view) {// TODO Auto-generated method stubif(isNetworkAvailable(NetWorkActivity.this)){txtView.setText("Network is OK.");}else{txtView.setText("Network is NOT OK.");}}};private boolean isNetworkAvailable(Context ctx) {System.out.println("isNetworkAvailable started");ConnectivityManager connMgr = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);System.out.println("isNetworkAvailable here");if(connMgr!=null){if(connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected() || connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected()){System.out.println("isNetworkAvailable Ended");return true;}}System.out.println("isNetworkAvailable Ended");return false; } }

这里面最主要的就是isNetworkAvailable方法,该方法负责检查网络连接是否正常,返回true或者false.

2.页面布局文件network.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >     <Button         android:id="@+id/btnCheckNetwork"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Click me to check network status"/>  <TextView         android:id="@+id/txtNetworkStatus"        android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="Network status"/></LinearLayout>

注意:

1.不要忘记把NetWorkActivity注册到AndroidManifest.xml中。

2.不要忘记添加 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>到AndroidManifest.xml中。

运行效果如下:


这个章节就介绍到这里,欢迎大家继续关注。


0 0
原创粉丝点击