Android 如何在OnCreate()上获取操作\u耳机\u插件
因此,为ACTION_HEADSET_PLUG注册广播接收器的艺术现在已经很好地解决了 但是。。。我的应用程序需要在Android 如何在OnCreate()上获取操作\u耳机\u插件,android,broadcastreceiver,headset,Android,Broadcastreceiver,Headset,因此,为ACTION_HEADSET_PLUG注册广播接收器的艺术现在已经很好地解决了 但是。。。我的应用程序需要在onCreate()上尽早知道耳机是否已插入(如果未插入,它应该只显示一个对话框并退出,因为这是一个仅用于耳机的应用程序,不用于扬声器) 然而,无论我读到哪里,注册接收者都应该在或中完成,这使得onCreate()没有机会使用接收者设置的标志 知道如何解决这个问题吗 是否有方法轮询耳机插孔?您可以使用它来确定耳机是否已插入,但请注意,根据文档: 这并不表示音频播放实际上是通过有线耳
onCreate()
上尽早知道耳机是否已插入(如果未插入,它应该只显示一个对话框并退出,因为这是一个仅用于耳机的应用程序,不用于扬声器)
然而,无论我读到哪里,注册接收者都应该在或中完成,这使得onCreate()
没有机会使用接收者设置的标志
知道如何解决这个问题吗
是否有方法轮询耳机插孔?您可以使用它来确定耳机是否已插入,但请注意,根据文档:
这并不表示音频播放实际上是通过有线耳机进行的,因为音频路由取决于其他条件
您还需要查看
isBluetoothPhone()
、isBluetoothA2dpOn()
和isBluetoothScoOn()
的值,以便更好地了解当前启用的功能。谢谢。我读到了关于isWiredHeadsetOn()
的gotchas。这就是为什么我玩弄了ACTION_耳机_插头。出于某种原因,我错过了AudioManager的isSpeakerphoneOn()
以及您提到的其他方法,因此感谢您。事实上,无论是插入有线耳机还是将蓝牙耳机接入网络,对我来说都无关紧要。只要音频没有传到扬声器,onCreate()
就应该继续。