Android监听系统广播 和自定义广播遇到的问题
现在有一个项目需要做一个开机自启动的功能,这个怎么实现呢?一顿咔咔咔百度,发现很多推荐 使用监听系统开机广播BOOT_COMPLETED,CONNECTIVITY_CHANGE
来实现。那好吧 我也这么来做。先写一个RootReceiver extends BroadcastReceiver ,在onReceiver中 做自己想做的逻辑 ,然后在mianfest中注册 BOOT_COMPLETED,CONNECTIVITY_CHANGE。记得添加开机启动权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".RebootReceiver" android:directBootAware="true" android:enabled="true" android:exported="true" tools:targetApi="n"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter>
</receiver>
public class RebootReceiver extends BroadcastReceiver {@Override public void onReceive(Context context, Intent intent) {MLod.Log("e", null, "RebootReceiver", "onReceive: ->" + intent.getAction()); if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction()) ||intent.getAction().equals(Intent.ACTION_LOCKED_BOOT_COMPLETED) ||intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
Log.i("TAG","");
}}}
基本上就是上面三步骤 然后开始调试了 我用的手机是vivo。(很坑爹) 然后调试了 我是在开机后 不启动app 然后切换网络 发现根本监听不到系统广播,这是为什么呢?继续一顿咔咔咔百度,原来3.1后 Android 不让app在安装后一次都没有开启后 监听系统广播,系统会把安装的app设为stopped状态。 那好吧 既然这样 我先启动一下,这时候 可以监听到网络状态变化 一看 有戏,然后开关机试试 ,又不行了,坑爹阿 ,为啥呢 不是开机一次就可以了吗?遇到这情况 ,换个手机试试把,就是这样,换个手机 有时候 不是自己代码的问题。 换了个pad,没问题了 可以监听。 现在又突然了一个需求 ,需要监听一个自定义的广播,那只要在mainfest里面加上action ,然后不就可以了嘛。我把action一开始写在一个intent-filter里面 ,然后又监听不到系统广播了,又一顿咔咔咔百度谷歌,尝试了下 把系统广播 和自定义广播 action 分开用intent-filter 写 ,没问题了,原因不太懂,有大神知道可以告诉一下。
Android监听系统广播 和自定义广播遇到的问题相关推荐
- android 监听系统广播
监听手机.手表或其他设备系统的广播 提示:查看系统发送过什么广播 一.用数据线连接设备 保证设备和电脑连接成功 二.使用 adb shell dumpsys | findstr BroadcastRe ...
- Android监听按键锁屏广播
目录 java版 kotlin版本 java版 不需要xml代码,直接java代码注册就好. public class MainActivity extends AppCompatActivity { ...
- uniapp 系统广播、自定义广播插件 Ba-Broadcast
简介(下载地址) Ba-Broadcast 是一款可监听系统广播的uniapp插件,如息屏.亮屏.声音.电量等等.支持监听系统广播:支持自定义广播:支持发送广播. 支持系统广播(支持设备支持的所有广播 ...
- Android - 接收、监听系统短信广播
广播接收者(BroadcastReceiver)是安卓的四大组件之一.类似于日常生活中的广播,安卓系统中的广播也有发送者和接收者.发送者通常是系统的应用程序,比如电池电量低.开关机.有电话或短信 ...
- Android中BroadCaseReceiver的基本用法(一)之监听系统广播
注册广播分为:动态注册和静态注册.动态注册是通过Java代码注册,静态注册是指在AndroidManifest.xml中注册. 如何创建一个广播接收器? 1.创建一个类继承自BroadCastRece ...
- Android 监听Home键按键事件
Android 监听Home键按键事件 标签(空格分隔):Android Home键 在Android开发中有很多按键事件需要在App中捕获从而做出一些针对性的操作,例如返回键,音量键等都可以直接在d ...
- 为什么监听不到开机广播action.BOOT_COMPLETED
为什么监听不到开机广播action.BOOT_COMPLETED 1. 说明 Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播 ...
- android 监听手机电量变化
今天,简单讲讲如何监听手机电量的变化. 监听电量是不能静态注册的. 后来上网搜索,发现有五个不能静态注册的广播,这里记录一下,免得下次再后知后觉的发现并惊讶于自己的笨拙. 不能静态注册的广播: and ...
- android 监听手机开机
今天,简单讲讲 android 监听手机开机. 需求描述:有些时候,我们需要我们的程序在开机后能自动运行,在系统即将关闭时,能写入一些记录到指定的文件里. 一.开机广播监听: Android系统 ...
最新文章
- 用Matplotlib轻松复刻分析图,看看哪个城市买房最自由
- 多多客DOODOOKE 1.x升级2.x指南
- SwiftTour基础学习(五)控制流
- 三角形外接圆圆心坐标
- oracle 10g下载百度云地址
- 小米手机各种检测代码
- landesk 卸载_landesk怎么卸载,软件卸载不了怎么办
- 阿里云ACA、ACP、ACE认证考试常见问题
- php 导出 设置多表头,PHP Excel 导出文件,自定义表头
- Word替换重复的内容
- 波恩大学Cyrill Stachniss SLAM课程
- win10怎么更新显卡驱动_Intel发布核显新驱动:支持Win10 H2更新、11代酷睿狂喜-Intel,核显,驱动,Win10 ——快科技(驱动之家旗下媒体)-...
- 硬件电路设计之电源电路的设计
- PHP学习:PHP+Apache 安装/配置
- vmware 连接云服务器协议,vmware怎么连接云服务器
- 【SQL学习笔记】《SQL进阶教程》1.2
- Oracle数据库(表、查询语句、条件查询)的使用
- 道德网安-菜鸟免杀教程
- 栈溢出漏洞CVE-2020-8423复现
- Realm-Android