-1

我想知道用户是静音还是非静音电话。如果用户使电话静音,如何检测用户与电话音量的交互我的功能将触发
提前致谢

4

1 回答 1

1

您可以使用 中的getRingerMode()方法检测手机是否处于静音模式 AudioManager

AudioManager mAudio = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

switch (mAudio.getRingerMode()) {
    case AudioManager.RINGER_MODE_SILENT:
        // your phone is in Silent Mode
        break;
    case AudioManager.RINGER_MODE_VIBRATE:
        // your phone is in Vibrate Mode
        break;
    case AudioManager.RINGER_MODE_NORMAL:
        // your phone is in Normal Mode
        break;
}

使用此代码应用您的逻辑以确定手机模式何时更改并相应地调用您的函数。

编辑: 要检测振铃模式的变化,请声明一个RingerModeStateChangeReceiver扩展并在您或您要处理广播的方法中BroadcastReceiver使用此代码:onCreate()ActivityService

      BroadcastReceiver receiver=new BroadcastReceiver(){
          @Override
          public void onReceive(Context context, Intent intent) {
               //call your function here
          }
      };
      IntentFilter filter=new IntentFilter(
                      AudioManager.RINGER_MODE_CHANGED_ACTION);
      registerReceiver(receiver,filter);
于 2012-09-20T06:01:06.440 回答