我想覆盖静音模式和/或媒体音量以使手机广播大声。我知道闹钟可以覆盖静音模式。你如何通过你的应用程序做到这一点?
问问题
8653 次
3 回答
4
您是在问闹钟应用程序是否可以覆盖静音模式,或者代码是否可以覆盖静音模式?
代码答案是肯定的,您可以通过如下代码更改静音模式设置:
AudioManager audio = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
int max = audio.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION);
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audio.setStreamVolume(AudioManager.STREAM_RING, max, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
于 2010-11-01T18:04:35.827 回答
4
我有另一种方式,因为托尼的回答已经奏效,但是假设您将设备置于静音模式并且应用程序需要播放任何声音(如警报音),它会发生什么改变配置文件,然后它将您的配置文件静音更改为铃声模式,然后再次,您需要进入静音模式。我对吗?
所以另一个解决方案是你可以在这里播放下面给出的铃声片段
int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
if(volume==0)
volume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, volume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
ringtone = RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringTonePath));
if(ringtone!=null){
ringtone.setStreamType(AudioManager.STREAM_ALARM);
ringtone.play();
isRinging = true;
}
isRinging
如果您想以编程方式停止播放,请设置为标志,或者您可以检查铃声的 isPlaying() 以停止播放
经历这个我没有改变当前的配置文件,也没有更多的代码
于 2012-03-17T13:27:15.370 回答
-1
Prey是一款开源手机跟踪器应用程序,如果它的功能可以做到这一点 - 如果你没有得到更好的答案,可以查看源代码以了解他们是如何做到的。
于 2010-11-01T17:05:18.700 回答