android 工程情景模式,Android小应用:智能情景模式

本文总结了一个Android应用的开发经验,主要功能包括‘铃声设置’和‘智能情景模式’。‘铃声设置’允许用户在‘普通’和‘静音’模式间切换,并自定义来电和短信铃声及音量。‘智能情景模式’让用户能设定特定时间段和情景模式,通过服务监控系统状态自动切换。实现上,界面采用Preference布局,铃声选择利用系统MediaScanner,情景模式通过设置闹钟和服务实现。数据存储使用SQLite。
摘要由CSDN通过智能技术生成

Android入门学习了一段时间,做了一个小应用,下面进行了一些总结。

应用程序的功能简介:

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

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

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

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

0818b9ca8b590ca3270a3433284dd417.png     

0818b9ca8b590ca3270a3433284dd417.png     

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png     

0818b9ca8b590ca3270a3433284dd417.png     

0818b9ca8b590ca3270a3433284dd417.png

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

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

0818b9ca8b590ca3270a3433284dd417.png      

0818b9ca8b590ca3270a3433284dd417.png

上面罗列了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进行监视系统的运行状态来实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值