美文网首页Android 小Module
广播:(监听网络,开机状态)

广播:(监听网络,开机状态)

作者: 穿越平行宇宙 | 来源:发表于2019-07-03 19:42 被阅读0次
image.png

一、 需要添加的权限

<!-- 网络连接 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 开机状态 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

二、 静态添加开机状态的广播

    <!-- 静态注册监听开机的广播 -->
    <receiver
        android:name=".type1.service.BootReminderReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

三、 activity 包下的

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private NetWorkChangeReceiver netWorkChangeReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 广播接收器
        netWorkChangeReceiver = new NetWorkChangeReceiver();

        // 意图过滤器:设置网络连接变化的活动
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");

        // 注册监听网络变化的广播
        registerReceiver(netWorkChangeReceiver, intentFilter);

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 注销广播
        unregisterReceiver(netWorkChangeReceiver);
    }
}

四、service 包下的

1. BootReminderReceiver.java:监听开机状态的广播接收器

public class BootReminderReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "开启成功", Toast.LENGTH_SHORT).show();
    }

}

2. NetWorkChangeReceiver.java:动态注册监听网络状态的广播接收器

public class NetWorkChangeReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        // 获取网络管理器类
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        // 获取网络信息,需要网络连接权限
        NetworkInfo activeNetworkInfo = null;
        if (connectivityManager != null) {
            activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        }

        // 根据 获取到的网络信息是否有,获取到的网络信息是否可用
        if (activeNetworkInfo != null && activeNetworkInfo.isAvailable())
            Toast.makeText(context, "有网", Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(context, "没网", Toast.LENGTH_SHORT).show();

    }

}

相关文章

  • BroadCast

    网络状态监听 开机广播监听 发送广播 发送标准广播

  • 广播:(监听网络,开机状态)

    一、 需要添加的权限 二、 静态添加开机状态的广播 三、 activity 包下的 MainActivity.ja...

  • 2018年Android的保活方案效果统计

    一、常见保活方案 1、监听广播:监听全局的静态广播,比如时间更新的广播、开机广播、解锁屏、网络状态、解锁加锁亮屏暗...

  • Android网络状态监听

    1.添加权限 2.获取ConnectivityManager 3监听网络状态 网络监听广播

  • Android网络状态

    添加权限 广播监听网络状态 注册BroadcastReceiver

  • Android广播监听网络状态

    1.先说一下广播,广播分为两种:静态广播和动态广播。静态广播即是静态注册的,而动态广播是代码动态注册。静态注册是通...

  • # 羊皮书APP(Android版)开发系列(二十六)开机自启动

    开机自动启动app的实现是比较简单的,监听一个开机广播即可。当监听到开机广播后打开想要启动的app即可,具体实现如...

  • Android-四大组件

    广播:1、例子:当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产...

  • Android静态广播多action冲突

    最近有个需求,开机自启,应用安装后自启,需要监听广播 问题:应用可以收到app覆盖的广播,无法收到开机广播修改: ...

  • 网络连接状态广播监听

    广播注册: 广播接收者的具体代码如下,主要是几个广播的几个intent.getAction()的含义,需要多注意。...

网友评论

    本文标题:广播:(监听网络,开机状态)

    本文链接:https://www.haomeiwen.com/subject/yugfzqtx.html