首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android中查看手机是否静音、振动或响亮

如何在android中查看手机是否静音、振动或响亮
EN

Stack Overflow用户
提问于 2012-08-16 18:41:41
回答 2查看 16.8K关注 0票数 28

这是我将电话静音/取消静音的代码。但我想检查一下电话是否一直处于静音状态,如果不是,我会将其静音。如果是在振动,那么我会让它正常。

我能以某种方式检查这个状态吗?

代码语言:javascript
运行
复制
public void changeRingerMode(Context context){

AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

    /**
    * To Enable silent mode.....
    */
    audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);

    /**
    * To Enable Ringer mode.....
    */
    audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-16 18:48:29

试试这个:

代码语言:javascript
运行
复制
switch( audio.getRingerMode() ){
case AudioManager.RINGER_MODE_NORMAL:
   break;
case AudioManager.RINGER_MODE_SILENT:
   break;
case AudioManager.RINGER_MODE_VIBRATE:
   break;
}
票数 59
EN

Stack Overflow用户

发布于 2015-09-03 11:37:21

在我的例子中,我发现即使我的手机设置为振动,当它是静默时,它也会返回AudioManager.RINGER_MODE_SILENT,所以我找到了一种方法来检查振动模式:

代码语言:javascript
运行
复制
public static boolean checkVibrationIsOn(Context context){
    boolean status = false;
    AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    if(am.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE){
        status = true;
    } else if (1 == Settings.System.getInt(context.getContentResolver(), "vibrate_when_ringing", 0)) //vibrate on
        status = true;
    return status;
}

要了解整体情况,请查看ringer是否打开:

代码语言:javascript
运行
复制
public static boolean checkRingerIsOn(Context context){
    AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    return am.getRingerMode() == AudioManager.RINGER_MODE_NORMAL;
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11985448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档