Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.2Framework层使用startService形式实现)

如前一篇博文所分析,我们可以使用广播的形式在快速按下两次音量下键的时候发出广播,以方便客户端进行捕捉。既然有两种方式可以实现该Issue那么哪种方式是首选呢?

我个人推荐使用启动服务的方式,这样的话可以避免多次连续按键导致重复发送广播,而使用服务不会重复启动服务。

具体实现方式如下:

/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();

ComponentName component=new ComponentName("com.xxx.xxx", "com.xxx.xxx.SnapshotService");

intent.setComponent(component);

mContext.startService(intent);

}

lastTime=System.currentTimeMillis();

}

}

......

}

时间: 2024-11-10 11:23:09

Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.2Framework层使用startService形式实现)的相关文章

Windows命令行(cmd)下快速查找文件(类似Linux下find命令)

for /r 用法简介 用了Linux下的find命令,觉得查找文件很方便,那么在windows下有没有类似的命令可以遍历目录并通过文件名找到文件呢?答案是有: Windows下的 for /r 命令具有与Linux下 find 命令类似的功能,使用语法上类似: find /r 目录名 %变量名 in (匹配模式1,匹配模式2) do 命令 匹配模式可以是通配类似于: *.jpg:所有.jpg后缀的文件 *test*:所有名称中包含test的文件 注意: 1. 匹配模式中至少带上1个*号 2.

Android4.4KK下遮盖p-sensor拨打电话无法自动灭屏的问题分析

一.问题现象 先遮盖P-Sensor,然后拨打电话,90%的情况下屏幕无法自动关闭背光显示.关闭Settings->Display->Brightness->Auto,然后再执行以上操作则100%能够正常关闭背光显示. Platform:MT6732 Android版本:4.4KK BuildType:user 系统软件版本:SWA1H+UM 系统RAM:1GB 参考机行为:参考机1正常,参考机2正常 二.MTK平台Android的Sensor流程框架 整个流程框架主要分为6个部分: 1

【Android】几种常见广播监听器(Wifi,亮灭屏,Home键,短信)总结

Wifi状态监听的广播接收者 /** * 监控Wifi状态的广播接收器,注意不需要添加任何权限 */ public final class WifiStateReceiver extends BroadcastReceiver { private static final String TAG = "TagForWifiStateReceiver"; @Override public void onReceive(Context c, Intent intent) { Bundle b

Android -- 距离感应器控制屏幕灭屏白屏

权限                                                                                             <uses-permission android:name="android.permission.DEVICE_POWER"/> <uses-permission android:name="android.permission.WAKE_LOCK"/>

android 软键盘在全屏下的布局计算问题

在非全屏模式下,将activity的windowSoftInputMode的属性设置为:adjustResize.同时在View的onSizeChanged(int w, int h, int oldw, int oldh)里可以得到变化后的尺寸,然后根据前后变化的结果来计算屏幕需要移动的距离. 但是在全屏模式下,即使将activity的windowSoftInputMode的属性设置为:adjustResize.在键盘显示时它未将Activity的Screen向上推动,所以你Activity的

jQuery仿Android锁屏图案应用插件

<!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery仿Android锁屏图案应用插件DEMO演示</title> <link href="css/patternLock.css" rel="stylesheet" type="text/css" /> <scr

Android KK开机按power键不能灭屏,须过会儿才能灭屏

这是Google issue,原生Android4.4都有此问题.流程是:AMS发出BOOT_COMPLETED,PowerManager收到BOOT_COMPLETED后check Boot animation是否完成,如果完成,就会将内部的成员mBootCompleted置为true,之后再按power键才会正常休眠. PowerManagerService.java在systemReady()方法中动态注册BootCompletedReceiver监听ACTION_BOOT_COMPLET

android锁屏软件制作

转载请标明出处http://blog.csdn.net/mingyue_1128 一.首先要创建一个Service保证Service一直开启,同时不被一键清理掉. 二.屏蔽掉系统的锁屏 三.创建锁屏的Activity,在Activity中屏蔽掉back,menu,home键 四.保证自己的进程不在最近任务中出现 一.创建一个Service名字为LockService public class LockService extends Service{ private KeyguardManager

Android4.4 无Proximity Sensor的设备拨号中实现自动灭屏

现在的电子产品越来越人性化,用户友好化,在给用户带来全新体验的同时,也在改变着人们的日常生活,所以说科技是伟大的,创新是伟大的. 随着移动设备的多元化发展,各种微型芯片的嵌入,使得它的功能越来越强大.比如各种各样的Sensor,最常见的一种是Proximity Sensor,现在的品牌机几乎都具备,也就是在打电话的时候,为了避免误操作,在电话接近耳朵的时候让手机处于灭屏状态,要实现这一功能使用Proximity Sensor是再好不过的了. 但是也有一些设备不具备Proximity Sensor