一、在AndroidMainfest.xml中添加权限
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <uses-permission android:name="android.permission.INTERNET" />
二、NetUtilSS 网络判断工具类
三、IntentReceiver网络监听工具类
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.net.ConnectivityManager;
- import android.net.NetworkInfo;
-
- public class IntentReceiver extends BroadcastReceiver {
- private boolean isnet ;
- @Override
- public void onReceive(Context context, Intent intent) {
- ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
- if (isnet == true){
- if (activeNetworkInfo != null && activeNetworkInfo.isAvailable()){
- ToastUtils.getInstance(context).show("网络连接成功",1000);
- SpUtils.putString(context,"network","有网");
- isnet = false;
- }else{
- ToastUtils.getInstance(context).show("网络开小差了",1000);
- SpUtils.putString(context,"network","无网");
- isnet = true;
- }
- }else{
- isnet = true;
- }
- isnet = true;
- }
- }
四、BaseActivity
- import androidx.appcompat.app.AppCompatActivity;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.IntentFilter;
- import android.net.ConnectivityManager;
- import android.os.Bundle;
- import android.widget.Toast;
-
- public class BaseActivity extends AppCompatActivity {
-
- private BroadcastReceiver receiver = new IntentReceiver();
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_base);
-
- IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
- this.registerReceiver(receiver,filter);
-
- boolean connected = NetUtilSS.isConnected(this);
- if (connected) {
- boolean wifi = NetUtilSS.isWifi(this);
- boolean rd = NetUtilSS.is3rd(this);
- if (wifi) {
- Toast.makeText(this, "WIFI已经连接", Toast.LENGTH_SHORT).show();
- SpUtils.putString(this,"network","有网");
- } else if (rd) {
- Toast.makeText(this, "手机流量已经连接", Toast.LENGTH_SHORT).show();
- SpUtils.putString(this,"network","有网");
- } else {
- Toast.makeText(this, "网络连接不可用,请检查网络设置", Toast.LENGTH_SHORT).show();
- SpUtils.putString(this,"network","无网");
- // NetUtilSS.openSetting((Activity) mContext);
- }
- } else {
- Toast.makeText(this, "网络连接不可用,请检查网络设置", Toast.LENGTH_SHORT).show();
- SpUtils.putString(this,"network","无网");
- // NetUtilSS.openSetting((Activity) mContext);
- }
- }
-
- public static boolean isNetwork(Context context){
- String network = SpUtils.getString(context, "network");
- if (network.equals("有网")){
- return true;
- }
- return false;
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- unregisterReceiver(receiver);
- }
-
- }
五、MainActivity? ?
- import androidx.appcompat.app.AppCompatActivity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.TextView;
-
- public class MainActivity extends BaseActivity {
-
- String TAG = "MainActivity";
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
-
- if (isNetwork(this)){
- Log.e(TAG,"有网");
- //请求
- //....
-
- }else {
- Log.e(TAG,"无网");
- //提示
- //....
- }
- }
- }
到此这篇关于Android网络监听和网络判断示例介绍的文章就介绍到这了,更多相关Android网络监听和网络判断内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!