广播小案例-监听系统网络状态 --Android开发

本例通过广播实现简单的监听系统网络状态改变的小案例。

1、案例效果演示

当手机连网后,系统提示“已连接网络”,

当手机断网后,系统提示“当前网络不可用1”。

2、案例实现

在主活动中动态注册广播,然后写一个内部类来接收系统广播,下面是相关文件的核心代码:

MainActivity.java:

public class MainActivity extends AppCompatActivity {    private IntentFilter intentFilter;    private NetworkChangeReceiver networkChangeReceiver;

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //动态注册广播        intentFilter = new IntentFilter();        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");        networkChangeReceiver = new NetworkChangeReceiver();        registerReceiver(networkChangeReceiver, intentFilter);    }

    /**     * 活动被关闭后执行     */    @Override    protected void onDestroy() {        super.onDestroy();        unregisterReceiver(networkChangeReceiver);    }

    class NetworkChangeReceiver extends BroadcastReceiver {//定义一个内部类用来接收广播        @Override        public void onReceive(Context context, Intent intent) {//            Toast.makeText(context, "网络状态发生改变!",//                    Toast.LENGTH_SHORT).show();            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();            if (networkInfo != null && networkInfo.isAvailable()) {                Toast.makeText(context, "已连接网络!", Toast.LENGTH_SHORT).show();            } else {                Toast.makeText(context, "当前网络不可用!", Toast.LENGTH_SHORT).show();            }        }    }}

另外一定要配置网络相关的权限,在这里需要在AndroidManifest.xml中添加下面的代码:

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

意思是允许程序访问有关GSM网络信息。

原文地址:https://www.cnblogs.com/qikeyishu/p/9216990.html

时间: 2024-11-05 13:29:51

广播小案例-监听系统网络状态 --Android开发的相关文章

Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.content.BroadcastReceiver;  import android.content.Context;  import android.content.Intent;  import android.net.ConnectivityManager;  import android.ne

OSX 监听系统网络设置

由于日常开发的需求,我们需要监听OSX一些系统设置的变化,达到软件程序设置的同步,这时我们可以通过以下函数监听系统设置的改变: #include <SystemConfiguration/SystemConfiguration.h> //------------------------------------------------------------------    SCDynamicStoreRef dynStore;    SCDynamicStoreContext context

android86 监听SD卡状态,勒索软件,监听应用的安装、卸载、更新,无序广播有序广播

* 添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/> * 4.0以后广播接收者安装以后必须手动启动一次,否则不生效 * 4.0以后广播接收者如果被手动关闭,就不会再启动了 ------------------------------------------------------------------------ #监听SD卡状态 * 清单文件中定义广播接收者接收的类型,监听SD卡常

动态注册广播接收器,监听网络变化

1:NetChangeReceiver.java public class NetChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)

Android 监听系统短信广播

使用场景: 1.对系统接收到的短信进行识别,是广告或者是诈骗等 2.对短信内容进行过滤或者是对内容进行提取,比如验证码提取 3.对系统短信进行拦截,连系统自己都不让收到了(不会出现在系统数据里面,也不会有系统短信的通知栏提示) 备注: 1.系统短信广播为有序广播,要拦截的话,需要在注册广播的时候设置广播优先级为最大,不过这种也有风险,如果被其他的应用先拦截了,那么我们将不再收到,使用时需注意. 2.要接到系统短信广播,那么应用必须具备短信读取权限,这对使用者来说可能是一个限制 3.除了短信读取权

微信小程序? 监听WebSocket关闭wx.onSocketClose(CALLBACK)

微信小程序? 监听WebSocket关闭wx.onSocketClose(CALLBACK) wx.onSocketClose(CALLBACK) ? 监听WebSocket关闭 wx.connectSocket({ url:"qkxue.net" }); //注意这里有时序问题, //如果wx.connectSocket还没回调wx.onSocketOpen,而先调用wx.closeSocket,那么就做不到关闭WebSocket的目的 //必须在WebSocket打开期间调用wx.

通过ContentResolver监听系统短信变化

需要有读取短信的权限 <uses-permission android:name="android.permission.READ_SMS"/> ContentResolver注册一个内容观察者 ContentObserver内容观察者监听系统短信的变化 通过ContentResolver来获取短信内容提供者提供的短信信息 package com.heima.jiantingSms; import android.app.Activity; import android.c

Android Notification之监听系统清除通知栏方法

编写了一个Notification通知工具类,里面含有监听系统清除通知栏方法,焦点在加粗斜体部分: public class Notifier { private static final String TAG = Notifier.class.getSimpleName(); private static Notifier instance; private Context mContext; private static final int NOTIFICATION_ID_1 = 0; pr

Android获取手机状态和监听手机来电状态

获取手机状态: import android.content.Context; import android.telephony.TelephonyManager; //获得相应的系统服务 TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /** * 返回电话状态 * * CALL_STATE_IDLE 无任何状态时 * CALL_STATE_OFFHOOK 接起电话时 *