有时候一些通讯软件需要这些个功能,比如说收到短信,通知等,要求手机发出铃声,或震动,或发光以提示用户知晓。往往手机都是有默认设置的,比如说用户开启了铃声+震动;只铃声不震动;完全静音等等...
这个时候就需要有一个规则了,起码软件的设置不能跟系统的冲突吧,中间的一些逻辑是要处理好的!之前做过的软件中有这么个需求,而且代码是我负责的,所以总结一下。
思路:
1. 软件应该有个自己的设置配置文件,用以保存,自己的软件的提醒规则
2. 遵从系统的设置,比如说:系统是完全静音的,人家想睡觉啦,你软件虽然是铃声震动全开,也得乖乖闭嘴。
3. 如果有需要提醒了,先获取系统的配置,然后做逻辑判断给予什么样的提醒。
java代码:
01
|
//首先需要接收一个Notification的参数
|
02
|
private void setAlarmParams(Notification notification) {
|
03
|
//AudioManager provides access to volume and ringer mode control. AudioManager volMgr = (AudioManager) mAppContext.getSystemService(Context.AUDIO_SERVICE);
|
04
|
switch (volMgr.getRingerMode()) {
|
05
|
//获取系统设置的铃声模式
|
06
|
case AudioManager.RINGER_MODE_SILENT:
|
07
|
//静音模式,值为0,这时候不震动,不响铃
|
08
|
notification.sound = null;
|
09
|
notification.vibrate = null;
|
10
|
break;
|
11
|
case AudioManager.RINGER_MODE_VIBRATE:
|
12
|
//震动模式,值为1,这时候震动,不响铃
|
13
|
notification.sound = null;
|
14
|
notification.defaults |= Notification.DEFAULT_VIBRATE; break; caseAudioManager.RINGER_MODE_NORMAL:
|
|
|
|
|
15
|
//常规模式,值为2,分两种情况:1_响铃但不震动,2_响铃+震动
|
16
|
Uri ringTone = null;
|
17
|
//获取软件的设置
|
18
|
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mAppContext);
|
19
|
if(!sp.contains(SystemUtil.KEY_RING_TONE)){
|
20
|
//如果没有生成配置文件,那么既有铃声又有震动
|
21
|
notification.defaults |= Notification.DEFAULT_VIBRATE; notification.defaults |= Notification.DEFAULT_SOUND;
|
22
|
}else{ String ringFile = sp.getString(SystemUtil.KEY_RING_TONE, null);
|
23
|
if(ringFile==null){
|
24
|
//无值,为空,不播放铃声
|
25
|
ringTone=null;
|
26
|
}else if(!TextUtils.isEmpty(ringFile)){
|
27
|
//有铃声:1,默认2自定义,都返回一个uri
|
28
|
ringTone=Uri.parse(ringFile);
|
29
|
}
|
30
|
notification.sound = ringTone;
|
31
|
boolean vibrate = sp.getBoolean(SystemUtil.KEY_NEW_MAIL_VIBRATE,true);
|
32
|
if(vibrate == false){
|
33
|
//如果软件设置不震动,那么就不震动了
|
34
|
notification.vibrate = null;
|
35
|
}else{
|
36
|
//否则就是需要震动,这时候要看系统是怎么设置的:不震动=0;震动=1;仅在静音模式下震动=2;
|
37
|
if(volMgr.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_OFF){
|
38
|
//不震动
|
39
|
notification.vibrate = null;
|
40
|
}else if(volMgr.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_ONLY_SILENT){
|
41
|
//只在静音时震动
|
42
|
notification.vibrate = null; }else{
|
43
|
//震动
|
44
|
notification.defaults |= Notification.DEFAULT_VIBRATE;
|
47
|
}
|
48
|
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
|
具体的实现就如代码那样子了,注释也很清楚了,其中SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mAppContext);
分享到:
相关推荐
7. **UI设计**:应用程序可能包含一个用户界面,让用户可以选择翻转后要执行的动作,如静音、震动或保持原样。这需要使用XML布局文件和自定义的View控件。 8. **测试与调试**:描述中提到开发者在AVD(Android ...
在Android系统中,实现“调取手机模式并根据模式而震动或响铃”的功能涉及到对设备的通知、音频管理和硬件交互等多个方面。以下是对这个主题的详细解析: 首先,我们需要了解Android中的通知(Notification)机制。...
在Android系统中,音量控制、定时、震动、静音以及铃声等元素构成了用户交互的重要部分,而情景模式的设置则进一步提升了用户体验。本文将深入探讨这些知识点,并结合一个小型示例进行解析。 首先,音量控制是...
1. **静音模式**:在静音模式下,手机的所有声音都会被关闭,包括来电铃声、通知音和媒体音。Android系统提供了API供开发者控制设备的静音模式,如`AudioManager`类的`setRingerMode()`方法,可以设置为`...
在智能手机的日常使用中,"手机震动提示"是一种常见的功能,它允许用户在接收通知、来电或其他特定事件时,通过设备的内置马达产生震动反馈,而非依赖声音提醒。这在静音环境下或者用户需要保持低调的情况下尤其有用...
在调整手机铃声时,用户还需考虑手机系统对不同文件格式的支持情况。不同品牌和型号的智能手机可能对铃声文件格式有不同的要求。为了确保自定义铃声能被正确读取和应用,用户可能需要将铃声文件转换成手机支持的格式...
当程序发现手机被翻成背面时,就会将铃声模式更改为振动模式,如在上班会议等其他场合中忘记将铃声调整为静音振动时,就可以利用这个程序快速地关闭手机铃声。 分享参考自Android SDK开发范例大全第3版。
- 闹钟的震动模式应独立于系统设置,即使系统本身处于静音或震动模式,如果闹钟设置为有铃声,应用仍会选择闹钟的铃声优先震动。 8. **节假日闹钟提醒**: - 这个功能尚未实现,但设想是在放假前一天的特定时间...
- 设置静音或震动模式:在办公环境中,避免铃声打扰同事。 - 适时离线:允许自己在特定时间段不查看手机,专注于工作或休息。 - 私密与工作区分:尽量不在公共场合查看私人信息,保持专业形象。 5. 短信与邮件的...
- 在公共场所或不便接听电话时,可以选择静音模式而非震动模式。 - 使用耳机接听电话,这样可以在不影响他人的同时节省电量。 #### 2. 简化待机画面并选择深色背景 - **原理**: 屏幕显示内容对电池消耗有直接...
这部分内容包括如何快速关闭来电铃声并开启震动或静音模式,设置来电和短信铃声,为不同联系人设置不同来电铃声,关闭虚拟按键操作音、振动以及锁定和解锁屏幕时的提示音等。例如,用户可以自行设置来电铃声,并为其...
在Android操作系统中,情景模式(Profile Mode)是一种用户可以设定的特定环境下的设备配置,它允许用户根据不同的场合或需求调整手机的设置,如音量、震动、屏幕亮度等。以下将详细介绍Android的情景模式,特别是...
在静音或需要保持低调的场合,关闭震动,改用静音或微弱铃声。 8. **管理提醒和更新**:禁止不重要的应用访问互联网进行自动更新或推送通知。这些活动不仅耗电,还会打扰到你。在设置中关闭这些提醒,为电池续航...
一旦设定完毕,droidSilencer将在指定的时间段内自动将手机切换到静音模式,避免了在重要场合被手机铃声打扰的尴尬。 这款应用是用Java语言开发的,Java作为Android平台的主要开发语言,具有广泛的社区支持和丰富的...
21. **设置静音模式**:连续按下音量减小键直至出现震动模式,或在电源键上长按3秒,选择静音模式。 22. **短信仅震动提醒**:在短信应用中,点击菜单键,选择设置,开启震动选项中的“始终”。 23. **设置短信...
手机铃声突然响起,或有人在旁若无人地高声通电话,这些都可能对周围人的工作、学习或生活造成干扰。因此,我们应该在进入图书馆、电影院、教室或其他需要保持安静的场所时,自觉地将手机调至静音或震动模式,并在...
IMY(i-Melody)是一种专为手机铃声设计的音乐格式,尤其适用于支持该格式的手机软件。它允许用户创建自定义铃声,并通过简单的文本编辑实现复杂的音乐效果。本文将详细介绍IMY格式文件的制作流程。 #### 二、IMY...
- 在会议或洽谈中,最好关闭手机或调至震动模式。 2. 通话时机: - 避免在不适合的场所接听或拨打手机,如剧场、图书馆、医院等。 - 提问“现在通话方便吗?”以尊重对方时间。 - 保持音量适中,不打扰他人。 ...