因此,现在已经很好地了解了为ACTION_HEADSET_PLUG和实际上processing the plug in/out events注册广播接收器的技术。

但是...我的应用程序需要尽早在onCreate()处了解耳机是否已插入(如果没有插入,则应该只显示一个对话框并退出,因为这是耳机专用的应用程序,而不是与扬声器一起使用)。

但是,无论我在哪里阅读,都应该在onStart()onResume()中完成接收者的注册-onCreate()没有机会使用接收者设置的标志。

任何想法如何解决此问题?

有没有办法轮询耳机插孔?

最佳答案

您可以使用AudioManager's isWiredHeadsetOn()来确定是否插入了头戴式耳机,但是请注意,按照文档所述:


  这不是有效的信号,表明音频实际上是通过有线耳机播放的,因为音频路由取决于其他条件。


您还需要查看isSpeakerphoneOn()isBluetoothA2dpOn()isBluetoothScoOn()的值,以更好地了解当前启用的功能。

关于android - 如何在OnCreate()中获得ACTION_HEADSET_PLUG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41966569/

10-12 06:50