`
xyz_lmn
  • 浏览: 65448 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

监听屏幕解锁事件

 
阅读更多

在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action。奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使用AndroidManifest.xml 完全监听不到。查了一下,发现这是PowerManager那边在发这个广播的时候,做了限制,限制只能有register到代码中的receiver才能接收。


private void registerScreenActionReceiver(){  
    final IntentFilter filter = new IntentFilter();  
    filter.addAction(Intent.ACTION_SCREEN_OFF);  
    filter.addAction(Intent.ACTION_SCREEN_ON);  
    registerReceiver(receiver, filter);  
}  
  
private final BroadcastReceiver receiver = new BroadcastReceiver(){  
  
    @Override  
    public void onReceive(final Context context, final Intent intent) {  
        // Do your action here  
  
    }  
  
};  

那怎么才能保证我的服务一直是启动状态呢,其实还有另一个Action可以反映出用户正在使用手机的行为,每个用户在使用手机的时候,首先按电源键将屏幕点亮,紧接着就是解锁。解锁动作通过android.intent.action.USER_PRESENT发送出来,我们就能识别出该用户进入了home界面,也就能启动我们相应的服务了,不管你是要谈对话框welcome用户,还是后台启动程序升级服务,都可以!以神的名义发誓,该Action在AndroidManifest.xml中可以监听得到。


<application android:icon="@drawable/icon" android:label="@string/app_name">  
    <activity android:name=".ScreenActionTestActivity"  
        android:label="@string/app_name">  
        <intent-filter>  
            <action android:name="android.intent.action.MAIN" />  
            <category android:name="android.intent.category.LAUNCHER" />  
        </intent-filter>  
    </activity>  
    <receiver android:name=".ActionReceiver">  
        <intent-filter android:priority="90000">  
            <action android:name="android.intent.action.USER_PRESENT" />  
        </intent-filter>  
    </receiver>  
</application>  

/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/

分享到:
评论

相关推荐

    Android监听屏幕是否锁屏

    3. 监听屏幕状态变化:Android系统提供了`BroadcastReceiver`来接收系统广播,其中`ACTION_SCREEN_ON`和`ACTION_SCREEN_OFF`两个广播事件分别表示屏幕开启和关闭。我们需要注册一个`BroadcastReceiver`来监听这两个...

    基于Android实现之智慧记单词【100011922】

    开发者需要创建一个自定义的BroadcastReceiver来监听屏幕解锁事件,并在解锁时展示单词。同时,为了实现单词的发音,可能需要集成语音合成库,如Google的Text-to-Speech服务。 用户交互是关键。当用户对单词进行...

    jquery Android屏幕解锁插件patternlock

    **jQuery Android屏幕解锁插件PatternLock详解** PatternLock是一款基于jQuery的Android风格图案解锁插件,它模拟了Android系统中的图形解锁方式,适用于Web应用程序,为用户提供了一种安全且直观的验证方式。这款...

    Android 监听锁屏、解锁、开屏 功能代码

    - begin:开始监听屏幕状态的方法,它需要一个ScreenStateListener接口作为参数,用以处理屏幕开启、关闭和用户解锁后的事件。 - getScreenState:这个私有方法用于获取当前屏幕的状态,并直接调用...

    Android 屏幕唤醒 + 屏幕解锁 + 开机服务监听(android.intent.action.BOOT-COMPLET)

    Android 屏幕唤醒 + 屏幕解锁 + 开机服务监听(android.intent.action.BOOT_COMPLET)添加权限:{//开机监听&lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/&gt;&lt;uses-permission android...

    HTML5 Android手机屏幕解锁模拟器代码

    屏幕解锁模拟器需要监听用户的触摸动作,分析滑动路径,这就需要用到事件处理函数。 3. **本地存储**:HTML5的localStorage和sessionStorage提供了在浏览器中存储数据的能力,可以用来保存用户的解锁设置或者解锁...

    jquery插件来模拟Android屏幕解锁.zip

    在"jquery插件来模拟Android屏幕解锁.zip"这个压缩包中,我们可以推测包含了一个用于在Web页面上模拟Android设备屏幕解锁体验的jQuery插件。 "132692102892465354"可能是该插件的主要JavaScript文件名,通常jQuery...

    jquery九宫格模拟Android屏幕解锁插件patternlock

    **jQuery九宫格模拟Android屏幕解锁插件PatternLock详解** 在网页交互设计中,为了提供更贴近用户习惯的体验,有时我们需要将移动端Android设备的九宫格解锁方式移植到Web应用上。`PatternLock`就是一个专门为此...

    HTML5实现屏幕手势解锁代码包

    在这个项目中,开发者会先定义一个圆形或椭圆的解锁图案,然后通过监听用户的触摸事件(`touchstart`、`touchmove`和`touchend`)来跟踪用户的触控轨迹。当用户在屏幕上滑动手指时,程序会在Canvas上绘制线条,形成...

    android 仿制ios 屏幕数字解锁

    在Android平台上实现iOS风格的数字屏幕解锁是一种常见的需求,它能为用户提供熟悉的界面和操作体验。这个项目"NumberLockDemo-master"显然是一个Android应用示例,用于演示如何在Android上创建一个类似于iOS的数字...

    C#制作屏幕保护程序 两种解锁方式 高端技术--实现软键盘输入

    在本文中,我们将深入探讨如何使用C#编程语言制作屏幕保护程序,并且实现两种解锁方式,其中一种是通过高端技术的软键盘输入。C#是一种功能强大的面向对象的编程语言,广泛应用于Windows桌面应用开发,包括创建屏幕...

    android九宫锁屏幕解锁

    同时,还要监听用户的触摸事件,记录用户的触摸路径。 3. **触摸事件处理**:通过重写`onTouchEvent()`方法,捕获用户在屏幕上的滑动操作。当用户触摸到某个点时,将其标记为已选中,并根据用户手指的移动绘制连线...

    解锁、锁屏监控

    对于监听屏幕解锁,通常需要请求`ACCESS_FINE_LOCATION`或`ACCESS_COARSE_LOCATION`权限,因为这些权限在某些设备上与锁屏相关联。然而,监听屏幕锁定通常不需要特殊权限,因为这属于系统级别的事件。 屏幕状态的...

    基于qt5.14.2 qml实现锁屏以及解锁

    例如,我们可以使用QML的State和Transition来管理解锁前后界面的状态变化,通过Connections组件监听用户交互事件,触发相应的解锁逻辑。 解锁逻辑通常包含以下步骤: 1. 检查用户输入:比较用户绘制的图案或输入的...

    jQuery手机屏幕手势解锁代码.zip

    在实现手势解锁功能时,jQuery的核心作用在于监听用户的触摸事件,并根据用户的触摸轨迹进行判断。 1. **触摸事件监听**:在移动设备上,我们需要监听`touchstart`、`touchmove`和`touchend`这三个事件。`...

    jQuery CSS仿iPhone手机滑动解锁屏幕

    - **事件处理**:jQuery提供了便捷的方式来绑定和触发事件,如`$(element).on('mousedown', function() {...})`用于监听鼠标按下事件,`$(element).dragstart()`和`$(element).dragend()`用于模拟拖动开始和结束。...

    Android 监听Home键、锁屏、解屏(落雨敏详细讲解)

    Android 监听Home键、锁屏、解屏处理方法,都有注释。使用简介:  (1)、将内部类(广播类)作为MyBroadcastReceiver类的成员变量,方便activity使用  (2)、对外接口类(如:ScreenStateListener)作为...

    Unlock上滑解锁,也可修改为右滑解锁

    在Android中,这通常涉及到监听MotionEvent事件,尤其是ACTION_DOWN(手指触摸屏幕)和ACTION_UP(手指离开屏幕)这两个关键事件。在ACTION_DOWN事件中记录下触摸点的位置,然后在ACTION_UP事件中判断手指移动的方向...

Global site tag (gtag.js) - Google Analytics