Android 应用开发实例之情景模式
2013-07-01
Android 应用开发实例
1. 情景模式
使用TabHost来实现主界面的布局。
设置一组RadioButton来切换不同的情景模式。
对比普通情景模式,定时情景模式需要加上一个TimPicker来显示并设置时间。
自定义情景模式需要自己定义声音的大小。
调节声音的大小、静音、振动等。
// 获得一个AudioManager对象
AudioManager audioMgr = Context.getSystemService(Context.AUDIO_SERVICE);
// AudioManager常量
AUDIO_LOWER
AUDIO_RAISE
AUDIO_SAME
EXTRA_RINGER_MODE
EXTRA_VIBRATE_SETTING
EXTRA_VIBRATE_TYPE
FLAG_PLAY_SOUND
FLAG_VIBRATE
MODE_INVALID
MODE_IN_CALL
MODE_NORMAL
MODE_RINGTONE
// AudioManager方法
adjustVolume
getMode
getRingerMode
getStreamMaxVolume
isSpeakerPhoneOn
loadSoundEffects
playSoundEffect
setMicroPhoneMute
setMode
setRingerMode
setSpeakerPhoneOn
setVibrateSetting
// 设置铃声+振动
audioMgr.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ON);
// 设置静音模式
audioMgr.setRingerMode(AudioManager.RINGER_MODE_SILENT);
audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);
// 注册一个定时器
AlarmManager.set(int type, long triggerAtTime, PendingIntent operation);
// 得到一个PendingIntent
PendingIntent.getActivity(Context, int, Intent, int);
PendingIntent.getBroadcast(Context, int, Intent, int);
PendingIntent.getService(Context, int, Intent, int);
// 创建并注册一个定时器
public void ring() {
Intent it = new Intent(RingBroadcastReceiver.RING_CHANGED);
it.putExtra(“checkedId”, R.id.ring02);
PendingIntent pIt = PendingIntent.getBroadcast(this, RingBroadcastReceiver.REQUEST_CODE, it, 0);
alarmMgr.set(AlarmManager.RTC_WAKEUP, getTime(), pIt);
}
// 创建广播接收器
public class RingBroadcastReceiver extends BroadcastReceiver {
public void onReceiver(Context context, Intent it) {
}
}
// 处理UI事件
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup02);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangedListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
}
});
// 在Manifest文件中注册广播接收器
<receiver android:name=”RingBroadcastReceiver”>
<intent-filter>
<action android:name=”com.example.ring.RingProfile.RV_CHANGED” />
<action android:name=”com.example.ring.RingProfile.RING_CHANGED” />
<action android:name=”com.example.ring.RingProfile.VIBRATE_CHANGED” />
<action android:name=”com.example.ring.RingProfile.SILENT_CHANGED” />
</intent-filter>
</receiver>
Android 应用开发实例之情景模式的更多相关文章
- android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...
- Android NDK开发实例教程
WINDOWS系统+ Eclipse + NDK+Android 最近开始学习Android平台开发,Android还没有玩转,Java也是刚入门,这又要开始在Android中调用C语言,需要利用ND ...
- Android应用开发中的夜间模式实现(一)
前言 在应用开发中会经常遇到要求实现夜间模式或者主题切换具体例子如下,我会先讲解第一种方法. 夜间模式 知乎 网易新闻 沪江开心词场 Pocket 主题切换 腾讯QQ 新浪微博 我今天主要是详述第一种 ...
- Android计算器开发实例
Android简单计算器开发实例如图: ==================================================== activity_main.xml 代码如下: < ...
- android 浏览器开发实例
android app需要通过手机显示网页信息还是比较常用的,比如我最近业余开发的 抢商铺游戏,需要对游戏规则做说明,规则会比较多,而且要经常变动,就想到用网页来展示,更新起来方便,不像应用,一旦发布 ...
- Android应用开发实例篇(1)-----简易涂鸦板
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/03/2378328.html 一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想 ...
- Android网络开发实例(基于抓包实现的网络模拟登录,登出和强制登出)
学习Android有几个月了,最近喜欢上了网络编程,于是想通过Android写一些一个小程序用于连接外网.在这里非常感谢雪夜圣诞的支持,非常感谢,给我打开新的一扇门. 1.声明,本程序只能用于西南大学 ...
- Android 应用开发实例之文件管理器
2013-07-02 10.2 文件管理器 能够浏览和管理手机/存储卡上的文件和文件夹,包括重命名.删除.新建.复制.粘帖等文件操作. 由于需要浏览大量的文件/文件夹,所以需要使用一个ListView ...
- Android NFC开发概述
NFC手机相比普通手机来说,有以下3个附加功能: 1.可以当成POS机来用,也就是“读取”模式 2.可以当成一张卡来刷,也就是NFC技术最核心的移动支付功能 3.可以像蓝牙.Wi-Fi一样做点 ...
随机推荐
- bzoj 1789: [Ahoi2008]Necklace Y型项链 贪心
1789: [Ahoi2008]Necklace Y型项链 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Jud ...
- PAT甲级1103. Integer Factorization
PAT甲级1103. Integer Factorization 题意: 正整数N的K-P分解是将N写入K个正整数的P次幂的和.你应该写一个程序来找到任何正整数N,K和P的N的K-P分解. 输入规格: ...
- iOS开发系列--音频播放、录音、
音频 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频 ...
- OpenWrt包管理软件opkg的使用(极路由)
说明: 1.OpenWrt本身系统没什么问题,关键点是一些路由器尝试的限制,比如一些厂商设置成内存分区为只读,那么这个安装软件就变得没什么意义了. 2.opkg的操作有点反人类,正常步骤是查询,安装: ...
- LT1961 升压型稳压器造就了兼具升压和降压能力的扁平状SEPIC
http://cds.linear.com/docs/cn/design-note/DN317%20sim_chs.pdf http://cds.linear.com/docs/en/datashee ...
- ORACLE单表理论最大记录数
不考虑硬件诸如内存,存储等硬件的限制. 一张表理论能存储多少条记录呢? 假设: 一个tablespace中包含1022个datafiles, 单个datafiles的最大是32G 假设每个block是 ...
- PHP:面向对象学习笔记,重点模拟Mixin(掺入)
背景 相对于Python.Node和Ruby来说PHP算是一门容易学习和使用的语言,因为这个特点也使其成为WEB开发领域的佼佼者,本文记录一下我对PHP面向对象部分的学习笔记. 先来一个复杂的例子:M ...
- jquery获取table指定行和列的数据(当前选中行、列)
//不多说,直接上代码.$("table tr").click(function() {//为表格的行添加点击事件 var tr = $(this);//找到tr原色 var td ...
- 3月题外:关于JS实现图片缩略图效果的一个小问题
由于3月可能要结束实习,所以应该不会有特别固定的主题,另外我会在月初陆续补上上个月的番外篇Projection和TMS,作为介绍性的内容对矢量切片部分进行补充,剩下时间不定期写一些杂烩. 最近两天在做 ...
- datagridview 纵向 横向 合并单元格
datagridview 单元格合并:纵向以及横向合并参考了csdn上不知哪位的代码,具体哪位找不到连接了. 纵向合并: /// <summary> /// 纵向合并,即合并数据项的值 / ...