如何在android中检测插入和拔出麦克风

时间:2018-03-02 19:42:20

标签: android

如何检测是否有麦克风插入我的设备? 另外,如果从设备中拔出麦克风,如何收到通知?

我似乎无法在Android文档中看到如何执行此操作,无论是在我的谷歌搜索中。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以创建一个监听BroadcastReceiver的{​​{1}},如果min sdk为21,建议使用另一个常量Intent.ACTION_HEADSET_PLUG

当您注册接收器时,您将收到“粘性”AudioManager.ACTION_HEADSET_PLUG,然后在插入/拔出麦克风时收到其他人。 Intent非常简单,无法找到“状态”和“麦克风”键的文档,只需使用调试器查看它们即可。所以课程看起来像:

BroadcastReceiver

然后你只需要注册(和取消注册)

class MicrophonePluggedInReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context, intent: Intent) {
        if (intent.action == Intent.ACTION_HEADSET_PLUG) {
            val state = intent.getIntExtra("state", 0)
            val microphone = intent.getIntExtra("microphone", 0)
            val isMicrophonePluggedIn = state == 1 && microphone == 1
            Toast.makeText(context, "microphone plugged in $isMicrophonePluggedIn", Toast.LENGTH_LONG).show()
        }
    }
}