----------汗,居然不能贴图片。为了方便大家看,贴在了自己的博客上:http://goo.gl/KNw7 ---------------我想要做个demo,大概的效果类似于WaveSecure这个软件。它拿到了ADC2的全球所有类别的第三名,是个安全软件。现在我在做锁定屏幕这个功能时遇到了问题,一直无法解决,所以我想知道WaveSecure它是大概如何实现功能的? 我拿自己的S60系统测试了下,大概效果如下图:http://goo.gl/XlPP当手机被远程锁定以后,要在客户端解锁,用户必须输入特定的密码。(这个时候,键盘还是可以用的,因此它并没有拿SCREEN_BRIGHT_WAKE_LOCK 因为这样Keyboard就直接不能用了。)所以,我觉得WaveSecure肯定是用某种方法替换了系统自带的锁屏功能。我搜索了很久,唯一的发现就是两个可能有用的包:android.app.KeyguardManager
android.os.PowerManager但是我阅读了相关Android Docs后,还是没啥突破。很觉得KeyguardManager是解决这个问题的关键,但是我只能实现disableKeyguard,而无法自定义一个新的Keyguard,难道直接继承KeyguardManager这个类?重写里面的方法?关于WaveSecure是如何实现它的锁屏功能的,你有什么idea吗?thx:)
android.os.PowerManager但是我阅读了相关Android Docs后,还是没啥突破。很觉得KeyguardManager是解决这个问题的关键,但是我只能实现disableKeyguard,而无法自定义一个新的Keyguard,难道直接继承KeyguardManager这个类?重写里面的方法?关于WaveSecure是如何实现它的锁屏功能的,你有什么idea吗?thx:)
解决方案 »
- 线程如何传送信息给前台Activity?
- android ndk如何编译基于mips架构的开源C++库?
- 求助,子线程中处理GPS,问题较多,多放点分
- 将C移植到android平台,当C文件下包含.dsp .c .h .ncb这么多种文件的时候,如何定义Android.mk?
- 怎么让弹出窗口弹出后弹窗上面的编辑框有焦点
- android 2.3.3 2.3.4中mediaplayer缓冲时间过长是怎么回事?有什么方法能够解决呢?
- android pin&puk密碼解鎖
- 一个看似简单的问题。findViewById 返回 null
- RadioButton问题
- android 调用webservice dataset数据出现异常,哪位高手麻烦看下
- 动画对其它控件的 影响的问题
- android如何让标题栏文字居中。不用自定义标题栏
WaveSecure它是直接提供apk文件安装的,并不需要重新编译内核。
我现在觉得它使用全屏的Activity来一直控制屏幕,并且只有当输对密码时才让你进入正常界面。你觉得呢?
thx:) 今天晚上实践下。
是说我的哪种方法?这几天都在搞GAE服务端,都忘了这边发的这个帖子了-_-!
能否再解释下pointer(指针)是啥意思?
key应该是获取键盘码的意思吧。
我现在就是KEYCODE_HOME禁用有问题,不知道怎么解决了?能私信一下,给个邮箱我吗?
就在这里说吧,人多力量大
我用了的啊,但是没有效果,是我写的不对吗? @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags( WindowManager.LayoutParams.TYPE_KEYGUARD, WindowManager.LayoutParams.TYPE_KEYGUARD);
setContentView(R.layout.main);
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME){
return true;
}
return super.onKeyDown(keyCode, event);
}
另外TYPE_KEYGUARD肯定不是随便设的,需要什么permission你自己找找吧。
嗯,谢谢指出setType。但还是没用哦,尝试了好多权限。我用Log.v()记录了一下,KEYCODE_HOME和KEYCODE_ENDCALL始终就是捕捉不到的,google的人说做了特别的处理。但是,又想不通的是google为啥要搞个TYPE_KEYGUARD这样一个类型码。难道是要求你把系统默认的KEYGUARD给disable掉,建自己的?
因为我看WaveSecure里面有这样一个权限:android.permission.DISABLE_KEYGUARD。
它的所有权限可看这里:http://cn.androlib.com/android.application.com-wsandroid-qwBq.aspx兄台,这边有篇很不错的文章:http://kb.cnblogs.com/a/1629435/ 我觉得对解决这个问题会有用。但是我看不大懂,这几天还得搞python服务端,先把简单的搞定。不知道你看了之后是否有啥好的idea?不甚感激!
a confused student:(
SystemServer->
WindowManagerService->
Policy.java->
PhoneWindowManager->
KeyguardViewMediator->
KeyguardViewManager->
LockPatternKeyguardView.java
最终跟踪到这个类的话,是可以修改的,不过我是还没修改过看过,真要实际试了才知道。
哪位知道flag怎么在定义
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
可屏蔽HOME键