在android中,谷歌工程师为了加固android系统,使其更安全,限制了开机广播的发送顺序。系统启动->系统应用启动->发送开机广播->普通app启动。由此一来,普通的app是接收不到开机广播的,据网上的答案说是要把app移动到system目录下。。可是太繁琐了(反正我不会弄)。。。于是我苦苦的寻找解决方案。我发现可以用SCREEN_ON或者SCREEN_OFF来代替。但是还有一个问题,SCREEN的广播不能静态注册。。这让我很纳闷。。据说是谷歌工程师为了优化系统才这么做的。。静态注册的话无法实现我的需求(详情请搜索静态注册和动态注册的异同),于是还得继续找替代方案。于是我发现了解锁事件。就是说,在android下,用户点亮屏幕后必须要进行解锁才可以进入到主屏幕,而且,这个广播可以静态注册。这样就好办了。
屏幕解锁事件是由android.intent.action.USER_PRESENT发出的。。。由此,也算大体满足的了我的需求了吧~。可能还有其他解决方案,希望一起讨论。
时间: 2024-10-10 05:35:40