Android应用开发揭秘(笔记) 第十章 Android应用开发实例
来源:互联网 发布:网络词汇 编辑:程序博客网 时间:2024/06/06 06:57
☆ .情景模式
1.音频管理:
通过使用AudioManager它主要来控制和访问铃声。通过如下代码获得一个AudioManager实例
Context.getSystemService( Context.AUDIO_SERVICE )
AudioManager的常用信息:
ADJUST_LOWER 减小铃声声音
ADJUST_RAISE 增加铃声声音
ADJUST_SAME 保持原来的铃声声音
EXTRA_RINGR_MODE 新的铃声模式
EXTRA_VIBRATE_SETTING 新的特殊的振动模式
EXTRA_VIBRATE_TYPE 振动类型
FLAG_PLAY_SOUND 当调节音量时,是否播放(预览效果)
FLAG_VIBRATE 是否振动
MODE_CURRENT 无效音频模式
MODE_INVALID 在调用的音频模式
MODE_IN_CALL 普通音频模式
MODE_RINGTONE 响铃模式
AudioManager方法:
adjustVolume 调整音量大小
getMode 获得当前音频模式
getRingerMode 获得当前铃声模式
getStreamMaxVolume 得到最大音频指数
getStreamVolume 得到当前音频指数
isSpeakerphoneOn 扬声器是否打开
loadSoundEffects 加载声音效果
playSoundEffect 播放声音效果
setMicrophoneMute 设置麦克风静音和关闭
setMode 设置音频模式
setRingerMode 设置铃声模式
setSpeakerphoneON 设置扬声器打开和关闭
setVibrateSetting 当铃声模式改变时,设置振动类型
//如下代码设置了铃声又振动的模式
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL );
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_NO);
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_NO );
//如下代码设置静音模式
audio.setRingerMode( AudioManager.RINGER_MODE_SILENT );
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_RINGER, AduioManager_VIBRATE_SETTING_OFF );
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF );
2.AlarmManager与PendingInent
由于使用了定时情景模式,需要用到AlarmManager来控制定时器。可以通过set(int type, long tiggerAtTime, PendingIntent operation )来注册一个定时器。
注册时,发送定时时间时,需要一个重要参数PendingIntent,它负责传递定时信息,既要将信息发送出去,也要对发送后的状态进行处理。通过调用getActivity(Context, int, Intent, int),
getBroadcast(Context, int ,Intent, int),getService( Context,int ,Intent, int)函数得到一个PendingIntent实例。
通过getBroadcast获得PendingIntent将实现广播的功能,就想调用Context.sendBroadcast()函数一样。
处理一个定时器的方法:
void ring(){
Intent intent = new Intent( RingBroadcastReceiver.RING_CHANGED );
intent.putExtra( "checkedId", R.id.ring02 );
PendingIntent alarmIntent = PendingIntent.getBroadcast( this, RingBroadcastReceiver.REQUEST_CODE, intent, 0 );
mAlarmManager.set( AlarmManager.RTC_WAKEUP, getTime(), alarmIntent );
}
3.BroadcastReceiver( 广播接收器 )
当应用程序所设置的时间到了后,系统中的AlarmManagerService就会从系统底层获取一个闹铃事件,并从自己维护的队列中取出与其匹配的信息,然后通过其应用注册的PendingIntent把该闹铃
事件发回给应用。
4.权限处理
最后需要对应用程序中使用BroadcastReceiver以及所使用的一些Action进行注册和声明:
代码如下:
< receiver android:name="RingBroadcastReceiver">
<intent-filter>
<action android:name="com.yarin.android.RingProfile.RV_CHANGED" />
<action android:name="com.yarin.android.RingProfile.RING_CHANGED" />
<action android:name="com.yarin.android.RingProfile.VIBRATE_CHANGED" />
<action android:name="com.yarin.android.RingProfile.SILENT_CHANGED" />
</intent-filter>
</receiver>
1.音频管理:
通过使用AudioManager它主要来控制和访问铃声。通过如下代码获得一个AudioManager实例
Context.getSystemService( Context.AUDIO_SERVICE )
AudioManager的常用信息:
ADJUST_LOWER 减小铃声声音
ADJUST_RAISE 增加铃声声音
ADJUST_SAME 保持原来的铃声声音
EXTRA_RINGR_MODE 新的铃声模式
EXTRA_VIBRATE_SETTING 新的特殊的振动模式
EXTRA_VIBRATE_TYPE 振动类型
FLAG_PLAY_SOUND 当调节音量时,是否播放(预览效果)
FLAG_VIBRATE 是否振动
MODE_CURRENT 无效音频模式
MODE_INVALID 在调用的音频模式
MODE_IN_CALL 普通音频模式
MODE_RINGTONE 响铃模式
AudioManager方法:
adjustVolume 调整音量大小
getMode 获得当前音频模式
getRingerMode 获得当前铃声模式
getStreamMaxVolume 得到最大音频指数
getStreamVolume 得到当前音频指数
isSpeakerphoneOn 扬声器是否打开
loadSoundEffects 加载声音效果
playSoundEffect 播放声音效果
setMicrophoneMute 设置麦克风静音和关闭
setMode 设置音频模式
setRingerMode 设置铃声模式
setSpeakerphoneON 设置扬声器打开和关闭
setVibrateSetting 当铃声模式改变时,设置振动类型
//如下代码设置了铃声又振动的模式
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL );
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_NO);
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_NO );
//如下代码设置静音模式
audio.setRingerMode( AudioManager.RINGER_MODE_SILENT );
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_RINGER, AduioManager_VIBRATE_SETTING_OFF );
audio.setVibrateSetting( AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF );
2.AlarmManager与PendingInent
由于使用了定时情景模式,需要用到AlarmManager来控制定时器。可以通过set(int type, long tiggerAtTime, PendingIntent operation )来注册一个定时器。
注册时,发送定时时间时,需要一个重要参数PendingIntent,它负责传递定时信息,既要将信息发送出去,也要对发送后的状态进行处理。通过调用getActivity(Context, int, Intent, int),
getBroadcast(Context, int ,Intent, int),getService( Context,int ,Intent, int)函数得到一个PendingIntent实例。
通过getBroadcast获得PendingIntent将实现广播的功能,就想调用Context.sendBroadcast()函数一样。
处理一个定时器的方法:
void ring(){
Intent intent = new Intent( RingBroadcastReceiver.RING_CHANGED );
intent.putExtra( "checkedId", R.id.ring02 );
PendingIntent alarmIntent = PendingIntent.getBroadcast( this, RingBroadcastReceiver.REQUEST_CODE, intent, 0 );
mAlarmManager.set( AlarmManager.RTC_WAKEUP, getTime(), alarmIntent );
}
3.BroadcastReceiver( 广播接收器 )
当应用程序所设置的时间到了后,系统中的AlarmManagerService就会从系统底层获取一个闹铃事件,并从自己维护的队列中取出与其匹配的信息,然后通过其应用注册的PendingIntent把该闹铃
事件发回给应用。
4.权限处理
最后需要对应用程序中使用BroadcastReceiver以及所使用的一些Action进行注册和声明:
代码如下:
< receiver android:name="RingBroadcastReceiver">
<intent-filter>
<action android:name="com.yarin.android.RingProfile.RV_CHANGED" />
<action android:name="com.yarin.android.RingProfile.RING_CHANGED" />
<action android:name="com.yarin.android.RingProfile.VIBRATE_CHANGED" />
<action android:name="com.yarin.android.RingProfile.SILENT_CHANGED" />
</intent-filter>
</receiver>
- Android应用开发揭秘(笔记) 第十章 Android应用开发实例
- Android应用开发揭秘(笔记) 第七章 多媒体开发
- Android应用开发揭秘(笔记) 第五章Android游戏开发
- Android应用开发揭秘(笔记) 第九章Android特色开发
- Android 应用开发揭秘(笔记) 第一章Android开发简介
- Android应用开发揭秘
- Android应用开发揭秘学习笔记-优化
- Android应用开发揭秘(笔记) 第三章 程序设计基础
- Android应用开发揭秘(笔记) 第八章网络通信
- 书讯:《Android应用开发揭秘》
- Android应用开发揭秘 第一章
- Android应用开发揭秘(笔记) 第六章 Android数据存储
- android应用开发揭秘例4-1笔记
- android应用开发揭秘examples_04-08笔记(CheckBox的使用)
- android应用开发揭秘examples_04-12笔记(Button的使用)
- android应用开发揭秘examples_04-16笔记(ImageButton的使用)
- android应用开发揭秘examples_04-17笔记(Gallery的使用)
- Android应用开发揭秘(笔记) 第四章用户界面开发(第一部分)
- Android WebView的缓存!!!
- gtest框架的介绍与应用
- C++成员变量的初始化方式
- 黑马程序员-----java基础二十三(交通灯管理方案代码实现)
- Java设计模式——单例模式
- Android应用开发揭秘(笔记) 第十章 Android应用开发实例
- [JavaScript]AJAX方法简单示例——1(.load()方法)
- 黑马程序员-----java基础二十四(银行柜台取票管理方案代码实现)
- Huffman编码
- Tomcat Too Many Open Files
- 宏与内联函数
- VC6.0中友元函数无法访问类私有成员的解决办法
- JavaScript replace(rgExp,fn)正则替换的用法
- H.264 Profile、Level、Encoder三张简图