查看frameworks/base/media/java/android/media/AudioManager.java

    /*** Ringer mode that will be silent and will not vibrate. (This overrides the* vibrate setting.)** @see #setRingerMode(int)* @see #getRingerMode()*/public static final int RINGER_MODE_SILENT = 0;/*** Ringer mode that will be silent and will vibrate. (This will cause the* phone ringer to always vibrate, but the notification vibrate to only* vibrate if set.)** @see #setRingerMode(int)* @see #getRingerMode()*/public static final int RINGER_MODE_VIBRATE = 1;/*** Ringer mode that may be audible and may vibrate. It will be audible if* the volume before changing out of this mode was audible. It will vibrate* if the vibrate setting is on.** @see #setRingerMode(int)* @see #getRingerMode()*/public static final int RINGER_MODE_NORMAL = 2;

通过AudioManager 可看出存在三种状态

    /*** Returns the current ringtone mode.** @return The current ringtone mode, one of {@link #RINGER_MODE_NORMAL},*         {@link #RINGER_MODE_SILENT}, or {@link #RINGER_MODE_VIBRATE}.* @see #setRingerMode(int)*/public int getRingerMode() {final IAudioService service = getService();try {return service.getRingerModeExternal();} catch (RemoteException e) {throw e.rethrowFromSystemServer();}}

则想知道当前手机铃音状态,可直接getRingerMode()获取:

  import android.media.AudioManager;AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);                     final int ringerMode = am.getRingerMode();switch (ringerMode) {case AudioManager.RINGER_MODE_NORMAL://normalbreak;case AudioManager.RINGER_MODE_VIBRATE://vibratebreak;case AudioManager.RINGER_MODE_SILENT://silentbreak;}

当用户设置情景模式时,系统会广播一个 RING_MODE_CHANGE_ACTION 消息,我们也可以定义一个广播接收器,监听此消息,然后通过 AudioManager 提供的接口判断当前的情景模式做出特定的处理。

private BroadcastReceiver mReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals(AudioManager.RING_MODE_CHANGE_ACTION)) {AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);final int ringerMode = am.getRingerMode();switch (ringerMode) {case AudioManager.RINGER_MODE_NORMAL://normalbreak;case AudioManager.RINGER_MODE_VIBRATE://vibratebreak;case AudioManager.RINGER_MODE_SILENT://silentbreak;}}}
}

判断手机是否处于静音、震动、正常模式相关推荐

  1. 如何判断手机是否处于漫游状态

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 手机专业 ...

  2. Android 如何判断手机处于电源充电状态还是USB连接状态?

    IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatusIntent = ...

  3. android定时切换活动,安卓手机如何定时自动切换情景模式 (全文)

    相信很多人都知道手机情景模式这个功能.它可以根据不同场景环境而将手机调为静音或者震动模式.这个功能确确实实方便了许多人,因而也经常被使用.但是很多人希望手机能定时自动切换情景模式.安卓系统本身目前并不 ...

  4. 判断手机是否弹出键盘,改变了手机页面高度,对应inputStatus的状态改变相关控件的大小和位置

    inputResizeBodyHeight() {// 判断手机是否弹出键盘,改变了手机页面高度,对应inputStatus的状态改变相关控件的大小和位置var oldHeight =document ...

  5. 移动端判断手机横竖屏状态及加载相应样式或内容的解决方案

    移动端的开发过程中,免不了要判断横竖屏,然后在执行其他操作,比如分别加载不同样式或内容等等. 首先在做移动端开发的时候,在HTML页面head中加入如下代码 <meta name="v ...

  6. android 双卡手机发短信/判断手机是否为双卡

    本文转自:http://blog.csdn.net/xyz_lmn/article/details/7900439 try {Class<?> smsManagerClass = null ...

  7. 手机来电翻转静音功能

    手机来电翻转静音功能,手机来电铃声响起,通过翻转手机是手机铃声变为静音状态. 下面是在incallUi应用中实现的翻转静音功能只贴了关键代码部分, 代码在ProximitySensor.java中实现 ...

  8. Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法)!

    大家好,我们这一节讲一下,Android获取Ip的一些方法,在我们开发中,有判断手机是否联网,或者想获得当前手机的Ip地址,当然WIFI连接的和 我们3G卡的Ip地址当然是不一样的. 首先我尝试了如下 ...

  9. apache通过.htaccess(rewrite)判断手机电脑跳转-手机用户重定向到手机版

    自动判断.重定向的办法也有几种: 使用网站构建的程序(例如PHP)来判断.重定向: 使用服务器上的Web服务(例如Apache)来判断.重定向. 在Apache中设置重定向有两个办法: 在网站的htt ...

最新文章

  1. 深入理解MySQL执行过程及执行顺序
  2. Lock锁子类了解一下
  3. 【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
  4. 利用BIOS 中断INT 0x10显示字符和字符串
  5. Latex:表格制作全攻略
  6. 2019寒假纪中集训总结学期总结(流水账)
  7. 使用驱动器f:中的光盘之前需要将其格式化_硬盘无法使用,用DiskPart进行分区和格式化,非常简单...
  8. java hashmap扩容大小_HashMap的扩容机制以及默认大小为何是2次幂
  9. Test on 09/04/2016
  10. [导入][转载]超强大的jquery formValidator
  11. 两个数和三个数的最大值和最小值宏定义
  12. java无法输出_这个java程序为什么不能输出结果?
  13. Luogu 3332 [ZJOI2013]K大数查询
  14. spark GBT算法
  15. 【R语言】结巴分词与词性提取(以“提取知乎问题标题的频繁词前100个形容词”实战为例)(3月25日学习笔记)
  16. 1090: 哥德巴赫猜测
  17. 【参赛作品68】PostgrSQL和OpenGauss/MogDB分区表对比(二)
  18. 兔子繁殖问题----Python
  19. JS基礎:Hoisting 變量提升、TDZ 暫時性死區(Temporal Dead Zone)
  20. 又一次回归,再一次记录

热门文章

  1. video.js+jquery.danmu.js实现视频播放+发送弹幕
  2. 「开源」快速接入微信微博QQ钉钉登录分享
  3. 一曲微茫度余生 ——川剧《李亚仙》唱响香港西九戏曲中心
  4. 如何快速清洗空调扇(水冷式电风扇)(图文教程)
  5. microapp微前端基础使用
  6. java中是什么意思_java中什么意思?
  7. MU计算机里代表什么,计算器上M+、M-、MU、GT等分别代表意思-mu代表啥
  8. 从0开始学代码第五周!!!
  9. 小白成为大数据工程师 需掌握哪些知识技能
  10. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)