Android菜鸟成长记6 -- 网络连接的检查

时间:2023-03-08 23:50:02
Android菜鸟成长记6 -- 网络连接的检查

  在android开发中我们要经常考虑到各种问题。在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。

  那么具体步骤是怎样的呢?

  首先,我们想写一个简单的测试layout,添加一个button和textview。

  然后我们创建一个BtnListener类,继承OnClickListener接口,注意是(import android.view.View.OnClickListener包下的,要导错包)

  

 package com.example.day02;

 import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast; public class BtnListener implements OnClickListener { private Context context;
private TextView tv1;
private ConnectivityManager cm;
public BtnListener (Context context) {
this.context = context;
} public void onClick(View v) {
Activity a = (Activity)context;
tv1 = (TextView) a.findViewById(R.id.tsTestNetWorkBtn);
cm = (ConnectivityManager) a.getSystemService(a.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
if(info == null){
//提示没有网络
tv1.setText("当前没有网络");
tv1.setBackgroundResource(R.color.red);
Toast.makeText(context, "当前没有网络", Toast.LENGTH_LONG).show();
}
else{
38 //不需要提示,然后继续相关代码
39
40 tv1.setBackgroundResource(R.color.blueviolet);
41 }
}
} }

  然后我们在回到MainActivity类中,写上button的点击事件

  

 package com.example.day02;

 import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button; public class MainActivity extends Activity { private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) this.findViewById(R.id.button1);
btn.setOnClickListener(new BtnListener(MainActivity.this)); } }

为了能让项目正常运行,还有加上权限,在AndroidManifest.xml下进行配置

  

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>

接着我们就可以来测试我们的项目了,在模拟器上进行安装。

结果:

有网络的结果

Android菜鸟成长记6 -- 网络连接的检查

无网络的结果:

Android菜鸟成长记6 -- 网络连接的检查Android菜鸟成长记6 -- 网络连接的检查

Android菜鸟成长记6 -- 网络连接的检查