在 Android 操作系统中,我可以创建一个在后台运行并检测扬声器是打开还是关闭的服务吗?

Posted

技术标签:

【中文标题】在 Android 操作系统中,我可以创建一个在后台运行并检测扬声器是打开还是关闭的服务吗?【英文标题】:In Android OS, Can I create a service that runs in the background and detects if the Loud Speaker is ON or OFF? 【发布时间】:2013-02-26 08:40:04 【问题描述】:

我需要创建一个在后台运行并检测电话扬声器是否正在使用的服务。我需要监听电话“扬声器事件”(打开或关闭)并根据扬声器的状态执行操作。

【问题讨论】:

你的意思是耳机插不插?? (插入耳机意味着关闭,反之亦然,拔下耳机意味着开启。) 每次使用扬声器(而不是振铃器)时,我都需要我的服务知道。假设正在进行对话并且用户将电话扬声器打开,我需要我的服务对其做出反应。 你可以..我需要知道你所说的Speaker是什么意思??媒体音量或耳机插头或其他一些东西?我想您是在提到用户通话时打开和关闭扬声器的问题吗? 是的,我指的是通话时的扬声器。 【参考方案1】:

您可以使用AudioManager.RINGER_MODE_CHANGED 操作注册BroadcastReceiver,该操作将在声音配置文件更改时触发。在onReceiver() 中,您可以调用AudioManagergetRingerMode() 方法,该方法将返回RINGER_MODE_NORMALRINGER_MODE_SILENTRINGER_MODE_VIBRATE。希望这会有所帮助。

【讨论】:

无论哪个应用程序正在使用扬声器,AudioManager.RINGER_MODE_CHANGED 会被触发吗? 亲爱的 Egor,我想我被误解了.. 每次使用扬声器(而不是振铃器)时,我都需要我的服务人员知道。假设正在进行对话并且用户将电话扬声器打开,我需要我的服务对其做出反应。(以及关闭状态) @Rami,那么您可能需要编辑您的问题,让其他人更清楚。 我当然同意你的看法,但是你有我的问题的答案吗?

以上是关于在 Android 操作系统中,我可以创建一个在后台运行并检测扬声器是打开还是关闭的服务吗?的主要内容,如果未能解决你的问题,请参考以下文章

Kivy 应用程序有啥方法可以继续在后台工作吗?

Ionic android 推送通知仅在后台工作

如何在后端创建多对多关系

在 Android 操作系统中,我可以创建一个在后台运行并检测扬声器是打开还是关闭的服务吗?

Whatsapp 和即时消息应用程序如何在没有 Oreo 持续通知的情况下在后台工作?

如何在后台通过ajax加载块?