Android锁定屏幕或关闭状态-screen,高速按两次音量向下键来实现拍摄功能(1.1Framework在实现的形式层广播)

思想的实现:

WindowManagerService循环读取下面的关键信息和分发形式。在PhoneWindowManager.interceptKeyBeforeQueueing方法中进行消息的过滤。

因此该实现方式为在消息分发前的interceptKeyBeforeQueueing方法中监听当前按键为音量下键,假设当前状态为锁屏状态。并按键为音量下键,且两次按键间隔时间小于800ms时发送抓拍广播--"com.bill.snapshot"。

详细实现方式例如以下:

/framework/base/policy/src/com/android/policy/impl/PhoneWindowManager.java

private long lastTime=0;

public int interceptKeybeforeQueueing(KeyEvent event,int policyFlags,boolean isScreenOn){

if(event.getKeyCode()==KeyEvent.KEYCODE_VOLUME_DOWN && event.isDwon()){

if(isKeyguardLocked()){

if((System.currentTimeMillis()-lastTime) < 800){

Intent intent=new Intent("com.bill.snapshot");

mContext.sendBroadcast(intent);

}

lastTime=System.currentTimeMillis();

}

}

......

}

时间: 2024-11-02 09:16:29

Android锁定屏幕或关闭状态-screen,高速按两次音量向下键来实现拍摄功能(1.1Framework在实现的形式层广播)的相关文章

Windows锁定屏幕然后关闭显示器,可执行程序

有时候我们需要关闭屏幕来休息一下或者在本上写东西,但是屏幕亮着的时候会分心,但是关闭显示器又太麻烦了,所以直接来一个小程序(非微信小程序).还有一种情况,有时候晚上要离开电脑旁了,但是电脑还在做事情,不想关电脑,又因为晚上黑乎乎的,屏幕亮着会被骂的,综合以上情况,这端代码非常适合你. 如果你不会编译代码,没关系,我这里有编译好的可执行文件,下载链接http://www.yxxrui.cn/article/71.shtml using System; using System.Collection

[Android]锁定屏幕

最近玩的比较欢脱,欠了好多东西没写.今天先简单地补一篇简单的内容.就是最近涉及到一个锁定Android设备屏幕的设计,大概就是通过一个按钮或者服务消息,来控制设备界面完全锁定,不能点击任何东西.感觉上这个需求可能会涉及很多东西,然而做起来发现并没有...内容很简单,跟着代码快速过一遍. 本文地址:http://www.cnblogs.com/rossoneri/p/4409691.html 主界面就放一个按钮来触发事件好了: 按下按钮后显示另一个锁屏界面,同时加上一个解锁按钮(如果不加的话怎么退

Android 锁定屏幕放心

android:screenOrientation Activity在屏幕当中显示的方向.属性值可以是下表中列出的一个值: "unspecified"默认值,由系统来选择方向.它的使用策略,以及由于选择时特定的上下文环境,可能会因为设备的差异而不同. "user"使用用户当前首选的方向. "behind"使用Activity堆栈中与该Activity之下的那个Activity的相同的方向. "landscape"横向显示(宽度

delphiXE7关于android 检测屏幕是否处于关闭状态

unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Layouts, FMX.Memo; type TForm1 = class(TForm) Button1: TButton

Android 横竖屏切换时不销毁当前activity 和 锁定屏幕

首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidden"属性 <activityandroid:name=".FileBrowser"android:label="@string/app_name"android:configChanges="orientation|keyboardHidden"> <in

Android保持屏幕常亮唤醒状态

第一步:  首先添加权限: <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 第二步:代码实现如下: public class ScreenActivity extends Activity { PowerManager powerManager = null; WakeLock wakeLock = null; @Override protected

分享方法:android 获得屏幕状态

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    androi

Android 在程序中关闭和打开屏幕

需求:在程序中(通过事件等方式)打开和关闭屏幕 思路:一般情况下,关闭屏幕不是将屏幕真的关闭,而是将屏幕的亮度调到最低.一般情况下Android设备对屏幕可             调节的最低亮度是有一个限制的.如果你的设备真的允许完全关闭屏幕,则只能考虑为这款设备的特性,在你             写程序时是要考虑到大多数设备的. 实现: //启用屏幕常亮功能 private void turnOnScreen() { WindowManager.LayoutParams params =

android监听屏幕打开关闭广播无响应的情况

android在屏幕打开和关闭的时候会发出广播,但是如果receiver配置在AndroidManifest.xml中时,receiver是接受不到任何广播的. <receiver android:name="cn.abcd.listener.ScreenStateReceiver" > <intent-filter> <action android:name="android.intent.action.SCREEN_OFF" /&g