当前位置: 代码迷 >> Android >> Android小施用:智能情景模式
  详细解决方案

Android小施用:智能情景模式

热度:79   发布时间:2016-05-01 20:56:01.0
Android小应用:智能情景模式

白天上班之余,晚上回来还是继续敲代码,没办法,谁叫咱是屌丝一个呢。呵呵,自己也是凭着兴趣走上了软件开发这条黑道,不努力是不行的啦。

下面这个小应用程序牺牲了我一个礼拜的晚上娱乐放松时间,但完成所有预想功能的一刹那,总是那么令人兴奋!好记性不如烂笔头,得好好总结一下这个小应用。

好啦,废话不多说,进入正题。

PS:大家有兴趣可以去CSDN下载频道搜索“Android智能情景模式”进行应用程序整个工程代码的下载。


该应用程序的功能简介:

整体分为两个部分:"铃声设置"、"智能情景模式"

第一部分:"铃声设置",即普通情景模式设置,它包含了两个小部分:

         一是情景模式的选择"普通"或者"静音";

    二是在"普通"模式下,可以进行"普通铃声设置",即"来电"和"短信"铃声的选择,已经手机铃声音量的调节。

                                

                           


第二部分:"智能情景模式",可以对每一天设置一个时间段和情景模式,如果选择了"开启",则当天到了预设的时间段,就   会启动预设的情景模式。

比如,今天是星期日,我设置了"周日"这一项为"开启",开始时间为"8:00",结束时间为"12:00",情景模式类型为"静音",在8:00--12:00期间,手机自动调节情景模式为"静音",在12:00后,又自动恢复为原来的情景模式。

                        


上面罗列了APP所实现的功能,那么这些功能又是怎么实现的呢?接下来给大家做一下简单的介绍。

首先,第一部分"铃声设置":

    1.  大家看到的界面,想必都应该不陌生,没错,这里用的都是Perference布局方式。

其中,前三个Activity,结合起来无非就展示了一个内容点 ---> "普通铃声设置" 是否 enable ,依赖于"普通"这个CheckBoxPreference的状态是否选中。

而任何时候,"普通"和"静音"只能选择一项。选择其中一项后,另一项就会变为不可选状态,即setEnabled(false)。

    2.  第四个Activity,就是选择了"普通铃声设置"后,跳转过来的界面,没什么特别的,就布局了3个View,分别是 RingtonePreference 和 RingVolumePreference。

    3.  第五个Activity,由于上面设置的View直接引用系统提供的RingtonePreference,所以选择后,直接跳到如图示 界面,系统的MediaScanner直接扫描了/mnt/sdcard中的铃声数据,并显示在列表中。来电铃声和短信铃声都一样的道理,如果用模拟器开发,则将ringtones和notifications两个文件夹复制到/mnt/sdcard目录下即可。

    4.  第六个Activity,是自己写的一个类RingVolumePreference,继承自DialogPreference。在Activity中布局了 两个SeekBar,保存SeekBar的进度使用到了Android的轻量级数据库SQLite。

下面,是第二部分"智能情景模式":

    1.  整个界面的布局是一个ListView,与其相关联的适配器Adapter有7个map,分别对应一周的每一天。而每个map里面有三部分:星期几、开始和结束时间、情景模式。

    2.  点击其中某一天后,跳转至下一个Activity,该Activity可以进行当天所谓的智能情景模式的设置。这里用到的 数据存储方式同样是SQLite。

     

值得一提的是,手机是如何实现智能情景模式的呢?呵呵,这也是这个应用最核心的地方,大家可以不妨自己想一想该如何实现。

我这里的话,使用的是设置闹钟的方式实现的。时间段的切换则是通过一个Service进行监视系统的运行状态来实现。


详细的技术实现细节,大家如果有兴趣,可以在下载频道搜索“Android智能情景模式”,找到这个APP的所有代码,欢迎各位兄弟进行技术的讨论,小弟刚刚接触Android,希望大家在互相交流中不断进步~

您的留言将会是小弟前进的动力,谢谢各位。

  相关解决方案