Android屏幕锁设计

对于android屏幕锁的设计,最忌照搬Iphone的滑动滑块解锁,否则公司难免卷入专利纠纷之中,黄河水也洗不清。

有一个想法:将锁屏设计成3D的球体,当然得用到OpenGL方面,然后拨动球体旋转,当达到所规定的圈数(e.g.3圈)之后便可以开锁。

单就以上所述,屏幕锁可以做得更绚丽,但同时,挑战性也可想而知。

能力尚浅,现单说说常见的锁屏的设计原理:

对于锁屏,android系统都有自带,这样首当其冲的就是如何取而代之:

((KeyguardManager) context

.getSystemService(Context.KEYGUARD_SERVICE))

.newKeyguardLock("").disableKeyguard();// 取消系统自带的屏幕锁。

其实,屏幕锁的锁屏就是一个Activity,只不过在这个Activity下屏蔽了HOME键、返回键,并去掉了标题栏。这儿说说屏蔽的方法。

@Override

// 屏蔽home键

public void onAttachedToWindow() {

this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);

super.onAttachedToWindow();

}

@Override

// 屏蔽其他键

public boolean onKeyDown(int keyCode, KeyEventevent) {

switch (keyCode) {

case KeyEvent.KEYCODE_BACK:

return true;

}

return super.onKeyDown(keyCode,event);

}

以上两步就可以成功屏蔽一些按键了。对于如何去掉标题栏,只需要在onCreate()方法的开头加上:

requestWindowFeature(Window.FEATURE_NO_TITLE);// 无标题

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);// 无状态栏

这样一来就可以setContentView()了,出于创意的角度,可以自定义View、ViewGroup,也可以简单滴用一个带背景图片的View,然后就可以开始复写onTouchEvent()事件了。

在OnTouchEvent()事件当中,分onDown、onMove和onUp,其中得注意返回值true。在规划你的解锁蓝图时一些数学函数是少不了的,像Math.hypot、Math.sqrot、Math.ceil、Math.floor等等。

设计好锁屏的这个Activity之后,接下来面临的就是如何在恰当的时候调用这个Activity。

先说开机启动的时候。有一个BOOT_COMPLETED的intent,在开机启动的时候会Broadcast出来,所以,只需在静态注册一个reveiver来接收这样的一个intent。其间得注意一个权限的:

<uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED" />

然后就可以设计这样一个receiver并重写onReceive(),通过这个事件来启动锁屏的Activity。

接下来的就是ScreenON和ScreenOFF的时候了。同样,系统会Broadcast这样的事件,所以用receiver来接收,但是注意此时不能用静态注册的方法了,改用动态注册,可以灵活管理。那么在哪里注册呢?Activity?Service!

因为,对于ScreenON与ScreenOFF事件需要实时监听,所以选择一个Service是必须的。

值得注意的是,在Activity之外启动一个Activity,得注意加上setFlags():

intent.setClass(context, LockScreen.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

此外,就靠详细的逻辑设计了,将程序日臻完美。

这一折腾下来,遇到不少问题,着实有点气馁。现在还在设计过程中..

“我!是要当海贼王的男人!”---共勉。

Android屏幕锁设计相关推荐

  1. android系统锁屏锁怎么解决方法,Android 屏幕锁 - WakeLock

    Android 屏幕锁 - WakeLock Android,powermanager,wakelock,屏幕, PowerManager android.os.PowerManager PowerM ...

  2. android屏幕锁界面,安卓手机屏幕锁设置方法(九个点图案)

    这里以三星S5368手机屏幕锁为例 随着三星S5368手机系统功能愈来愈完善,性能愈来愈强劲,越来越多的三星S5368用户们都喜欢把一些重要的信息甚至隐私放在三星S5368手机里面,但是这就有可能会让 ...

  3. qt android屏幕锁屏,Qt 实现超时锁屏

    最近使用Qt实现超时锁屏的功能(工控机触摸屏),当手长时间不触摸屏幕的时候,程序超时会显示锁屏窗口. 一.效果 主窗口超时显示锁屏窗口: 系统窗口超时显示锁屏窗口: 二.实现思路 首先开启一个线程用于 ...

  4. Android 唤醒屏幕的方式:屏幕锁 - WakeLock / FLAG_KEEP_SCREEN_ON

    Android 屏幕锁 - WakeLock PowerManager android.os.PowerManager PowerManager 是用来管理设备的电源状态的类.下面是官方文档 This ...

  5. android手机可以设置屏幕锁定,安卓手机屏幕锁设置方法(九个点图案)

    这里以三星S5368手机屏幕锁为例 随着三星S5368手机系统功能愈来愈完善,性能愈来愈强劲,越来越多的三星S5368用户们都喜欢把一些重要的信息甚至隐私放在三星S5368手机里面,但是这就有可能会让 ...

  6. android设置不锁屏adb,如何通过ADB锁定Android屏幕?

    如何通过ADB锁定Android屏幕? 有没有办法通过ADB锁定Android屏幕? 我找到了将显示锁定在apk中的方法,但是我想通过ADB从PC锁定屏幕,以模拟显示超时,而不必等待超时. 是否有可能 ...

  7. android屏幕解锁图案,安卓手机图案屏幕锁解锁方法!!

    当你的安卓手机密码锁忘记了怎么办?今天一不小心把手机改了图案锁结果由于改的时候匆忙结果忘记了,在网上找了好多方法都无果,也有人说重新刷机就会好!!这个简直就是废话,刷机当然能好了!! 关键是解锁要解决 ...

  8. Android 解屏幕锁与点亮屏幕(来电时效果)

    当Android手机(应该是所有的手机都这样)收到短信或者电话时,会自动点亮屏幕,解开屏幕锁,以方便用户即时操作,下面用代码来实现这一功能: PowerManager pm=(PowerManager ...

  9. android基础--屏幕锁

    九宫格 PIN密码 密码锁屏      自从:API Level 8 (Android 2.2) 开始, Android提供了DevicePolicyManager类, 可以让你的应用程序也能执行屏幕 ...

最新文章

  1. 一文了解可视化的主成分分析(附教程)
  2. 长文综述:从大数据中寻找复杂系统的核心变量
  3. 将带空格的字符串去掉空格.join()函数
  4. time,atoi,strstr
  5. 查看MySQL句柄_mysql查询语句-handler
  6. python画图比赛_Python选修课第二届Turtle绘图大赛
  7. Struts2面试问答
  8. HDU2138 随机素数测试 Miller-Rabin算法
  9. 【eoe特刊】第二十七期 OpenGL ES学习及项目解析
  10. SpringBoot使用Easypoi导出excel示例
  11. DM8168的SPI接口
  12. 学习GNU Make (2): 规则
  13. 如何将 hadoop1.1.2/1.2.1 源码关联到 Eclipse
  14. hex2bin 64bit
  15. 导出(合并)手机QQ浏览器下载的视频
  16. 微信小程序编译的时候模拟器空白显示
  17. ~是什么意思 在C语言中,~0代表什么
  18. 织梦dedecms TAG标签调用汇总(史上最全)
  19. bcoma 应用程序发生错误_打开网页老是出现《应用程序错误》是怎么回事?
  20. smpl-x论文学习-部分翻译

热门文章

  1. Dell 330显卡驱动在2003server安装问题
  2. 2020,不知不觉,半年过了一半了!
  3. Linux系统中的火墙策略——firewalld、iptables
  4. C#学生管理系统 -【部分代码2】
  5. mac安装opencv(C++)
  6. UESTC1712 七夜雪寂,一世人心(SG)
  7. 2021年熔化焊接与热切割报名考试及熔化焊接与热切割考试内容
  8. python批量将excel转为txt
  9. CAD制图初学入门常见问题秘笈,助你摆脱节后综合症!(上)
  10. 半导体测试---测试基础原理之OS