因此,现在已经很好地了解了为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/