`
龙哥IT
  • 浏览: 254139 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

手机铃声,静音或震动

 
阅读更多

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

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

思路:
  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;

 

45

}

46

}

 

47

}

48

notification.flags |= Notification.FLAG_SHOW_LIGHTS;

 

49

//都给开灯

50

break;

 

51

default: break;

52

}

 

53

 

54

}

       具体的实现就如代码那样子了,注释也很清楚了,其中SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mAppContext);

分享到:
评论

相关推荐

    Android 翻转手机即换静音或震动

    7. **UI设计**:应用程序可能包含一个用户界面,让用户可以选择翻转后要执行的动作,如静音、震动或保持原样。这需要使用XML布局文件和自定义的View控件。 8. **测试与调试**:描述中提到开发者在AVD(Android ...

    调取手机模式并根据模式而震动或响铃

    在Android系统中,实现“调取手机模式并根据模式而震动或响铃”的功能涉及到对设备的通知、音频管理和硬件交互等多个方面。以下是对这个主题的详细解析: 首先,我们需要了解Android中的通知(Notification)机制。...

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

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

    android静音模式震动模式选择情景模式的选择.zip

    1. **静音模式**:在静音模式下,手机的所有声音都会被关闭,包括来电铃声、通知音和媒体音。Android系统提供了API供开发者控制设备的静音模式,如`AudioManager`类的`setRingerMode()`方法,可以设置为`...

    手机震动提示

    在智能手机的日常使用中,"手机震动提示"是一种常见的功能,它允许用户在接收通知、来电或其他特定事件时,通过设备的内置马达产生震动反馈,而非依赖声音提醒。这在静音环境下或者用户需要保持低调的情况下尤其有用...

    手机翻背面即静音振动

    当程序发现手机被翻成背面时,就会将铃声模式更改为振动模式,如在上班会议等其他场合中忘记将铃声调整为静音振动时,就可以利用这个程序快速地关闭手机铃声。 分享参考自Android SDK开发范例大全第3版。

    8700来电震动加铃声

    标题“8700来电震动加铃声”指的是在使用特定型号或品牌,可能是BlackBerry 8700智能手机时,来电提醒不仅有铃声,同时还有震动功能。这种设置可以确保用户即使在嘈杂环境下或者手机静音时也能接收到来电通知。描述...

    手机应用测试

    - 闹钟的震动模式应独立于系统设置,即使系统本身处于静音或震动模式,如果闹钟设置为有铃声,应用仍会选择闹钟的铃声优先震动。 8. **节假日闹钟提醒**: - 这个功能尚未实现,但设想是在放假前一天的特定时间...

    办公室手机礼仪.doc

    - 设置静音或震动模式:在办公环境中,避免铃声打扰同事。 - 适时离线:允许自己在特定时间段不查看手机,专注于工作或休息。 - 私密与工作区分:尽量不在公共场合查看私人信息,保持专业形象。 5. 短信与邮件的...

    手机电池省电六大秘笈

    - 在公共场所或不便接听电话时,可以选择静音模式而非震动模式。 - 使用耳机接听电话,这样可以在不影响他人的同时节省电量。 #### 2. 简化待机画面并选择深色背景 - **原理**: 屏幕显示内容对电池消耗有直接...

    云南省曲靖市沾益区_高一语文上学期第二次月考试题无答案 试题.doc

    4. 手机的日常困扰:如何处理手机成为日常生活中的一个问题,如是否开机、静音或震动的选择,以及如何应对期待或恐惧特定的手机铃声。手机同时带来了等待和期盼的消失,以及个人隐私与公共空间之间的新平衡。 5. ...

    安卓机说明

    这部分内容包括如何快速关闭来电铃声并开启震动或静音模式,设置来电和短信铃声,为不同联系人设置不同来电铃声,关闭虚拟按键操作音、振动以及锁定和解锁屏幕时的提示音等。例如,用户可以自行设置来电铃声,并为其...

    android 情景模式源码

    在Android操作系统中,情景模式(Profile Mode)是一种用户可以设定的特定环境下的设备配置,它允许用户根据不同的场合或需求调整手机的设置,如音量、震动、屏幕亮度等。以下将详细介绍Android的情景模式,特别是...

    怎样才能使手机电池耐用些?.docx

    在静音或需要保持低调的场合,关闭震动,改用静音或微弱铃声。 8. **管理提醒和更新**:禁止不重要的应用访问互联网进行自动更新或推送通知。这些活动不仅耗电,还会打扰到你。在设置中关闭这些提醒,为电池续航...

    droidSilencer:安排静音模式的Android应用

    一旦设定完毕,droidSilencer将在指定的时间段内自动将手机切换到静音模式,避免了在重要场合被手机铃声打扰的尴尬。 这款应用是用Java语言开发的,Java作为Android平台的主要开发语言,具有广泛的社区支持和丰富的...

    Android使用技巧[参照].pdf

    21. **设置静音模式**:连续按下音量减小键直至出现震动模式,或在电源键上长按3秒,选择静音模式。 22. **短信仅震动提醒**:在短信应用中,点击菜单键,选择设置,开启震动选项中的“始终”。 23. **设置短信...

    computer -电脑方面

    IMY(i-Melody)是一种专为手机铃声设计的音乐格式,尤其适用于支持该格式的手机软件。它允许用户创建自定义铃声,并通过简单的文本编辑实现复杂的音乐效果。本文将详细介绍IMY格式文件的制作流程。 #### 二、IMY...

    9银行职员通信礼仪.pptx

    - 在会议或洽谈中,最好关闭手机或调至震动模式。 2. 通话时机: - 避免在不适合的场所接听或拨打手机,如剧场、图书馆、医院等。 - 提问“现在通话方便吗?”以尊重对方时间。 - 保持音量适中,不打扰他人。 ...

Global site tag (gtag.js) - Google Analytics