【问题标题】:setRingerMode during incoming call - RINGING来电期间的 setRingerMode - RINGING
【发布时间】:2011-11-17 23:04:28
【问题描述】:

我有一个任务 - 电话响铃时立即更改铃声音量。例如: 检测到有来电后,我需要将铃声音量设置为 0(静音),并且还应禁用振动器(如果尚未禁用)。然后当我需要执行另一个代码(startComputing();)时会有延迟。之后振铃音量应更改为特定值(f.e.7)并应激活振动器。这是我的代码:

    public class IncomingCallReceiver extends BroadcastReceiver {
        private AudioManager amanager;
        public void onReceive(Context context, Intent intent) {
            if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {
                amanager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
                amanager.setRingerMode(0x00000000); // no sound and no vibration            
                startComputing();
                amanager.setRingerMode(0x00000002); // normal
                amanager.setStreamVolume(AudioManager.STREAM_RING, 7,
                        AudioManager.FLAG_SHOW_UI
                                + AudioManager.FLAG_PLAY_SOUND);
            }

        }
        private void startComputing() {
            try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
        }

}

1)主要问题是在这之后: amanager.setStreamVolume(AudioManager.STREAM_RING, 7, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND); 铃声根本不响,只出现吐司消息,声音级别发生变化,但电话不播放任何声音。这怎么能改变? 2)还有问题 amanager.setRingerMode(0x00000000);不会立即改变音量和振动,而是在大约半秒内改变。 先感谢您。 雅各布

【问题讨论】:

    标签: android telephonymanager


    【解决方案1】:

    我认为在您将铃声静音之前,您无法采取任何措施来克服 1/2 秒的延迟。有时它会起作用(即非常短或没有延迟),有时您会在短时间内听到铃声。

    我认为您遇到的问题是传递给 setStreamVolume 的标志。

    试试这个:

    amanager.setStreamVolume(AudioManager.STREAM_RING, 7,
        AudioManager.FLAG_SHOW_UI|AudioManager.FLAG_PLAY_SOUND);
    

    您应该使用按位或 (|),而不是简单的加法 (+)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      相关资源
      最近更新 更多