下面的网址是我在eoe上面发表的帖子,源代码在里面,可以去下载。

http://www.eoeandroid.com/thread-239655-1-1.html


最近公司在锁屏功能,类似小米的百变锁屏,可以手动切换锁屏样式和管理锁屏。
IPhone锁屏是比较经典的锁屏样式,由于是做山寨手机的,当然要模仿下了。下面是的是效果图。



下面是开放锁屏管理功能时候,参考的资料,同时也感谢编写下面博文的作者,感谢他们的奉献精神。

1、http://blog.csdn.net/nosxcy/article/details/6820778

2、http://blog.csdn.net/qinjuning/article/details/7505703

尤其是第二个博文的作者,他的文章,使我深受启发,再次表示感谢。

我所做的是锁屏管理的功能,但是本文所介绍的不是锁屏的内容,只是怎么样显示内容而已,特此声明,因为上面的作者已经把过程分享的很清楚了。


对于Android锁屏,我是这样理解的,就是一个View遮挡了你的显示界面,使你如果要继续操作,必须把这个view给消失掉,所以这样就出现了锁的效果。


然在在这个view上显示必要的信息,就可以了。


在开发锁屏管理的功能的时候,我首先研究了系统的锁屏,发现系统的锁屏核心的代码是在

frameworks\base\policy\src\com\android\internal\policy\impl\*

目录下面。


其次说锁屏的显示的内容,Android系统锁屏的常见的内容有:

1、未读短息,未接电话

2、充电状态

3、时间、日期、还可以加天气

4、其他的快捷方式,如:相机,音乐播放器等

5、其他的暂时未知


对于锁屏,理解最多的是面向接口编程,说白了是回调,Android的系统底层已经写好了,当上面的内容中有一个发生该变的时候,就可以调用回调,来更新显示;

对于回调,我也不做解释,大家的都懂的。


所以在Android源码的policy目录下面定义很多的接口,这些接口都是定义了当某些事件发送改变的时候,可以通过调用实现类来执行,实现类当然是在具体某一种锁屏的。


比如上面的显示内容就可以定义这样的回调(下面也是只是做一个比方,代码中没有实)

[java] view plain copy
  1. publicinterfaceLockInfoCallback{
  2. publicvoidonUnreadMessage(intcount);
  3. publicvoidonMissCall(intcount);
  4. publicvoidonBatteryChange(intstatus,intlevel);
  5. publicvoidonDateTimeChange();
  6. publicvoidonWeatherChange(WeahterInfoinfo);
  7. publicvoidonToCamera();
  8. publicvoidonToMusic();
  9. }




下面分别介绍以上内容的获取方法;

1、未读短信和未接电话,这个里面的数据是在Android系统的/data/data/数据库里面,具体的我也是从网上找到的,我的源码里面没有介绍,如果有需要的朋友可以联系我。

2、充电状态,这个Androi系统有对应的接口可以获取,当系统的电量发生变化的时候,会发送这个下面的Action

Intent.ACTION_BATTERY_CHANGED

只要在context里面注册一个BroadcastReceiver,就可以获取详细的信息,当然包括很多信息,我们索要的只是,当前是否在充电状态,充电装的百分比,以及是否充满。


3、时间和日期,天气:

时间和日期类似于上面的充电状态,也可以通过注册广播来监听时间和日期的改变;

常见的需要监听的广播有:

intentFilter.addAction(Intent.ACTION_TIME_TICK); // 时间流逝
intentFilter.addAction(Intent.ACTION_TIME_CHANGED); // 时间改变
intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);// 时区变化
intentFilter.addAction(Intent.ACTION_LOCALE_CHANGED); // 该更时区

至于天气的信息,可以参考下面的博文

http://www.cnblogs.com/ylligang/articles/2304434.html

就可以获取天气的信息;


4:其他的快接方式

这个跟简单, 只要通过intent跳转到对象的界面就看了,再次不做详细介绍;


更多相关文章

  1. 从零开始--系统深入学习android(实践-让我们开始写代码-Android框
  2. Android一键分享——原生分享图片
  3. 【定制Android系统】Android(安卓)7.1 实现连接 Captive Portal
  4. 华为推自主操作系统时机已到?
  5. Android系统使用socket在Java层和native之间数据通信
  6. 关于做Android+J2ee系统集成开发的一点心得【转】
  7. Android中@+id和@id的区别
  8. Android应用程序支持安装到SD卡
  9. 基于Android的记事本的设计与开发(实验报告+源代码)

随机推荐

  1. Android(安卓)开发之 RecyclerView Adapt
  2. 快速反编译APK
  3. Android(安卓)Push Notification
  4. [Android]挂断、接听电话
  5. Android中的搜索框(SearchView)的功能和用
  6. Android图像处理(三)通过矩阵变换实现图像
  7. 【Android】TabLayout 自定义指示器 Indi
  8. Android,一个函数实现上传文件(单个,多文
  9. android通过蓝牙实现两台手机传输数据
  10. 仿淘宝商品详情页面Android