android.intent.action.USER_PRESENT的接收与使用
2016-06-22 13:28
585 查看
但奇怪的是,这两个action只能通过代码动态的形式注册,才能被监听到,使用AndroidManifest.xml 完全监听不到。
百度后发现这是PowerManager那边在发这个广播的时候做了限制,限制只能有register到代码中的receiver才能接收。
后来就找各种能静态注册AndroidManifest.xml同时能反映用户解锁行为的广播.于是找到android.intent.action.USER_PRESENT.
每个用户隔一段时间重新开始使用手机时,首先按电源键点亮屏幕,紧接着解锁。android.intent.action.USER_PRESENT就是解锁时发出的intent.
于是,监听android.intent.action.USER_PRESENT就能识别用户进入home界面,进而启动想启动的相关服务,包括弹出对话框welcome用户\后台启动程序升级服务等等。
AndroidManifest.xml文件中注册代码
view source print?
|
public static final String ACTION_USER_PRESENT
Since: API Level 3
Broadcast Action: Sent when the user is present after device wakes up (e.g when the keyguard is gone).
This is a protected intent that can only be sent by the system.
Constant Value: "android.intent.action.USER_PRESENT"
翻译过来就是:
注意这个action只能有系统发出,是在用户唤醒机器的时候才会发出这种action.
另外, 真的屏幕解锁的时候触发这个广播,而我们接收这个广播会受好多条件的制约。
比如有些第三方桌面不会真正的锁屏,360,LBE等安全软件对广播的拦截等等.
相关文章推荐
- Pointer 0x0, not in getPreloadedDrawables android 系统资源预加载
- Android开发过程中的一些基本常识
- RxJava zip操作符在Android中的实际使用场景
- 安卓使用SQlite3数据库无法id主键无法自动增加?不是的。
- 从网页监听Android设备的返回键
- Ubuntu 14.04.4 Android环境配置问题汇总
- Android6.0新特性,导致读取SD卡文件的权限错误,Exception 'open failed: EACCES (Permission denied)'
- Android TextView 文字居中
- 安卓Android科大讯飞语音识别代码使用详解
- 安卓Android科大讯飞语音识别代码使用详解
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
- Android进程间通信(一):使用Parcel对象完成进程间通信
- Android Studio设置代码补全
- 使用SimpleXml解析xml数据<二>
- 安卓_Android_studio_自动导包
- Android 获取imageview的图,在另一个imageview里显示。
- Android Shape Drawable 静态使用和动态使用(圆角,渐变实现)
- Android-ListView所包含的item里面的控件点击事件
- 自定义TextView带货币符号
- Android流行框架大全