因此,为ACTION_HEADSET_PLUG和实际处理插入/退出事件注册广播接收器的技术现在已经很好地解决了。
但是..。我的应用程序需要在onCreate()早期知道耳机是否插上(如果没有,它应该只显示一个对话框并退出,因为这是一个仅限耳机的应用程序,不能与扬声器一起使用)。
然而,无论我读到什么地方,都应该在onStart()或onResume()中注册接收器--这使得onCreate()没有机会使用接收方设置的标志。
知道怎么解决这个问题吗?
有办法让民意测验耳机杰克吗?
发布于 2017-01-31 20:27:04
您可以使用AudioManager的isWiredHeadsetOn()来确定耳机是否已插入,但请注意,根据文档:
这不是一个有效的指示,即音频回放实际上是在有线耳机之上,因为音频路由取决于其他条件。
您还需要查看isSpeakerphoneOn()、isBluetoothA2dpOn()和isBluetoothScoOn()的值,以更好地了解当前启用的是什么。
https://stackoverflow.com/questions/41966569
复制相似问题