亚洲城地址

亚洲城地址官方网站下载安装

新闻发布日期:2018-4-25

如何检测Android中麦克风的插拔

如何检测设备中是否插入了麦克风?
此外,如果麦克风从设备中拔出,如何获得通知?

在Android文档中,我似乎看不到如何做到这一点,在我的Google搜索中也看不到。

谢谢!

您可以创建一个监听意图的广播接收器。如果最小SDK为21,则建议使用其他常量音频管理器。操作头戴式耳机插头。

注册接收器时,您将收到“粘滞”意图,然后在插入/拔出麦克风时收到其他意图。BroadcastReceiver相当简单,找不到“状态”和“麦克风”键的文档,只是用调试器看到了它们。所以全班同学看起来像:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

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()

}

}

}

然后只需注册(和注销)

1
2
3
4
5
6
7
8
9
10

val microphonePluggedReceiver = MicrophonePluggedInReceiver()

// ...

context.registerReceiver(microphonePluggedReceiver, IntentFilter(Intent.ACTION_HEADSET_PLUG))

// ...

unregisterReceiver(microphonePluggedReceiver)