`

android 设置铃声+振动

 
阅读更多
有时候一些通讯软件需要这些个功能,比如说收到短信,通知等,要求手机发出铃声,或震动,或发光以提示用户知晓。往往手机都是有默认设置的,比如说用户开启了铃声+震动;只铃声不震动;完全静音等等...

这个时候就需要有一个规则了,起码软件的设置不能跟系统的冲突吧,中间的一些逻辑是要处理好的!之前做过的软件中有这么个需求,而且代码是我负责的,所以总结一下。

思路:
  1. 软件应该有个自己的设置配置文件,用以保存,自己的软件的提醒规则
  2. 遵从系统的设置,比如说:系统是完全静音的,人家想睡觉啦,你软件虽然是铃声震动全开,也得乖乖闭嘴。
  3. 如果有需要提醒了,先获取系统的配置,然后做逻辑判断给予什么样的提醒。

//首先需要接收一个Notification的参数
private void setAlarmParams(Notification notification) {
//AudioManager provides access to volume and ringer mode control. AudioManager volMgr = (AudioManager) mAppContext.getSystemService(Context.AUDIO_SERVICE);
switch (volMgr.getRingerMode()) {

//获取系统设置的铃声模式
case AudioManager.RINGER_MODE_SILENT:

//静音模式,值为0,这时候不震动,不响铃
notification.sound = null;
notification.vibrate = null;
break;
case AudioManager.RINGER_MODE_VIBRATE:

//震动模式,值为1,这时候震动,不响铃
notification.sound = null;
notification.defaults |= Notification.DEFAULT_VIBRATE; break; case AudioManager.RINGER_MODE_NORMAL:

//常规模式,值为2,分两种情况:1_响铃但不震动,2_响铃+震动
Uri ringTone = null;
//获取软件的设置
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mAppContext);
if(!sp.contains(SystemUtil.KEY_RING_TONE)){

//如果没有生成配置文件,那么既有铃声又有震动
notification.defaults |= Notification.DEFAULT_VIBRATE; notification.defaults |= Notification.DEFAULT_SOUND;
}else{ String ringFile = sp.getString(SystemUtil.KEY_RING_TONE, null);
if(ringFile==null){

//无值,为空,不播放铃声
ringTone=null;
}else if(!TextUtils.isEmpty(ringFile)){

//有铃声:1,默认2自定义,都返回一个uri
ringTone=Uri.parse(ringFile);
}
notification.sound = ringTone;
boolean vibrate = sp.getBoolean(SystemUtil.KEY_NEW_MAIL_VIBRATE,true);
if(vibrate == false){

//如果软件设置不震动,那么就不震动了
notification.vibrate = null;
}else{

//否则就是需要震动,这时候要看系统是怎么设置的:不震动=0;震动=1;仅在静音模式下震动=2;
if(volMgr.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_OFF){
//不震动
notification.vibrate = null;
}else if(volMgr.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_ONLY_SILENT){
//只在静音时震动
notification.vibrate = null; }else{
//震动
notification.defaults |= Notification.DEFAULT_VIBRATE;
}
}
}
notification.flags |= Notification.FLAG_SHOW_LIGHTS;

//都给开灯
break;
default: break;
}

}
分享到:
评论

相关推荐

    android铃声振动模式

    ### Android铃声振动模式 在Android应用开发中,对铃声及振动模式的控制是一项非常实用的功能。它允许开发者根据不同场景的需求调整设备的铃声和振动状态。例如,在开发消息应用时,可以通过改变这些设置来提醒用户...

    android 静音与马达振动流程.doc

    音频服务负责与硬件交互,将设置的铃声模式和振动状态传递给硬件驱动,从而实现实际的静音和振动效果。 6. **定时输出(timed_output)**: 在Android中,`Vibrator`类提供了`vibrate(long[] pattern, int repeat)...

    android手机设置自己喜欢的铃声

    用户可以通过“设置”应用中的“声音与振动”选项来更改各种类型的铃声。然而,如果想要设置的铃声不在系统预设的列表中,就需要将自定义的音频文件添加到手机的特定目录。 对于开发者而言,了解这个过程背后的机制...

    android 通知的使用小实例(振动,灯光,声音)

    - 声音:可以设置默认铃声或自定义音频。 ```java Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); builder.setSound(soundUri); ``` 4. 构建`Notification`对象并发送: ...

    android手机铃声

    在Android操作系统中,设置手机铃声是一项基本且重要的功能,它允许用户个性化自己的手机通知声音。Android系统提供了多种方式来更改各种类型的铃声,包括来电、短信、闹钟以及通知等。下面我们将深入探讨Android...

    android 通讯录+流量控制+声音控制

    - **音效设置**:AudioManager还支持设置音频模式(如静音、振动、响铃等)和音频焦点,用于处理多应用间的声音冲突。 - **声音效果**:若需要自定义声音效果,可以使用AudioTrack或AudioRecord类直接操作音频流,...

    android 音量控制 定时 震动 静音 铃声 情景模式 设置

    在Android系统中,音量控制、定时、震动、静音以及铃声等元素构成了用户交互的重要部分,而情景模式的设置则进一步提升了用户体验。本文将深入探讨这些知识点,并结合一个小型示例进行解析。 首先,音量控制是...

    android 情景模式设置

    在Android操作系统中,情景模式(Ring Profile)是一种方便用户根据不同场合快速调整设备设置的功能,比如音量、振动、铃声等。它可以帮助用户在工作、会议、静音、睡眠等不同场景下,自动切换到相应的设备配置,以...

    android情景模式

    这个“android情景模式”项目是开发者创建的一个简单的自定义实现,提供了四种基本模式:铃音、振动、静音以及铃音加振动。下面将详细介绍这个项目的相关知识点。 1. **自定义情景模式**: 开发者创建了一个独立的...

    android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动

    在Android开发中,创建一个能够实现闹钟提醒并在锁屏状态下弹出Dialog对话框、播放铃声和振动的功能,涉及到多个关键知识点。以下是对这些知识点的详细解释: 1. **AlarmManager**: 这是Android系统服务,用于调度...

    android日历记事本

    用户可以为每个事件设置提醒时间,选择提前多久收到通知,无论是通过手机振动、铃声还是推送通知,都能确保用户不会忘记任何安排。而且,用户还可以自定义提醒声音,让提醒更加个性化。 为了提高使用体验,Android...

    android 6.0 开关机动画铃声添加

    3. 修改设置:打开系统设置,进入声音与振动设置,找到开机/关机音效选项,选择你刚刚添加的铃声。 4. 保存并应用:确保保存设置,然后执行一次关机操作,新铃声就会播放。 四、添加关机铃声 关机铃声的添加过程...

    Android 设置情景模式源码.zip

    `AudioManager`类提供了设置铃声模式(如`RINGER_MODE_SILENT`、`RINGER_MODE_VIBRATE`、`RINGER_MODE_NORMAL`)的方法,而`NotificationManager`则用于管理通知的显示和行为。 2. **切换情景模式** 开发者可以...

    android音量控制

    用户可以在“声音与振动”设置中单独调整铃声音量,以确保不会错过任何重要通知。此外,还可以为不同的联系人或事件设置个性化的铃声和音量。 4. **媒体音量**:媒体音量是播放音乐、视频、游戏等媒体内容时的声音...

    Android玲闹钟

    4. **Service**:如果闹钟需要在后台持续运行,例如播放铃声或振动,可以使用Service。开发者需要创建一个Service,处理闹钟响起时的逻辑,如播放音频、显示全屏界面等。 5. **SharedPreferences**:用于持久化存储...

    Android中怎样进行闹钟设置

    在Android系统中,设置闹钟是一项基础且重要的功能,它能帮助用户在特定时间提醒重要事务。本篇文章将深入探讨如何在Android...在实际开发中,还可以根据需求添加更多功能,例如自定义铃声、振动模式等,提高用户体验。

    安卓(Android)手机设置个性短信和来电铃声方法.doc

    在安卓(Android)系统中,个性化手机体验是许多用户喜欢的功能之一,这包括自定义短信和来电铃声。本文将详细介绍两种方法来帮助你实现这一目标。 方法一: 1. **设置个性来电铃声**: - 首先,你需要准备你喜欢...

    超好听的两个手机铃声+华为默认提示音打包下载.zip

    3. **设置铃声**:进入手机的设置菜单,找到“声音与振动”或“声音和触感”选项,选择“电话铃声”或“通知铃声”,然后在列表中找到新导入的文件进行设置。对于华为设备,可能还需要在“华为会员”应用中进行权限...

Global site tag (gtag.js) - Google Analytics