如何在通话期间禁用播放闹钟

发布于 2024-12-12 21:02:44 字数 54 浏览 2 评论 0原文

我想在来电时禁用播放闹钟。 只能听到呼叫铃声,而不能听到闹钟铃声。

怎么做呢?

I want to disable a playing alarm when a call comes .
Only the call ringtone should be heard and not the alarm tone.

How to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷心人i 2024-12-19 21:02:44

从活动、服务或任何有上下文对象的地方:

AlarmManager am = (AlarmManager)context.getSystemService(Context.AUDIO_SERVICE);
am.setStreamMute(AudioManager.STREAM_ALARM, true);

只需记住取消静音即可。或者,如果您的进程在通话结束后不再需要,并且系统销毁了它 - 静音就会消失。

但是,如果您保持进程处于活动状态,则保留对 AlarmManager 的引用很重要。我发现的一个错误是,如果您调用 setStreamMute(..., true) 然后丢失引用,无论您调用 setStreamMute(..., false) 多少次 code> 它永远不会取消静音。

因此,只需保留对 AudioManager 的静态引用即可。

From an activity, service or a anywhere you have a context object:

AlarmManager am = (AlarmManager)context.getSystemService(Context.AUDIO_SERVICE);
am.setStreamMute(AudioManager.STREAM_ALARM, true);

Just remember to take off the mute. Or, if your process is unneeded after the call ended, and the system destroys it - the mute goes off.

But, if you keep your process alive, its important that you keep a reference to your AlarmManager. A bug I found is, if you call setStreamMute(..., true) and then lose your reference, no matter how many times you call setStreamMute(..., false) it never unmutes.

So just hold a static reference to the AudioManager.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文