Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在OnCreate()上获取操作\u耳机\u插件_Android_Broadcastreceiver_Headset - Fatal编程技术网

Android 如何在OnCreate()上获取操作\u耳机\u插件

Android 如何在OnCreate()上获取操作\u耳机\u插件,android,broadcastreceiver,headset,Android,Broadcastreceiver,Headset,因此,为ACTION_HEADSET_PLUG注册广播接收器的艺术现在已经很好地解决了 但是。。。我的应用程序需要在onCreate()上尽早知道耳机是否已插入(如果未插入,它应该只显示一个对话框并退出,因为这是一个仅用于耳机的应用程序,不用于扬声器) 然而,无论我读到哪里,注册接收者都应该在或中完成,这使得onCreate()没有机会使用接收者设置的标志 知道如何解决这个问题吗 是否有方法轮询耳机插孔?您可以使用它来确定耳机是否已插入,但请注意,根据文档: 这并不表示音频播放实际上是通过有线耳

因此,为ACTION_HEADSET_PLUG注册广播接收器的艺术现在已经很好地解决了

但是。。。我的应用程序需要在
onCreate()
上尽早知道耳机是否已插入(如果未插入,它应该只显示一个对话框并退出,因为这是一个仅用于耳机的应用程序,不用于扬声器)

然而,无论我读到哪里,注册接收者都应该在或中完成,这使得
onCreate()
没有机会使用接收者设置的标志

知道如何解决这个问题吗

是否有方法轮询耳机插孔?

您可以使用它来确定耳机是否已插入,但请注意,根据文档:

这并不表示音频播放实际上是通过有线耳机进行的,因为音频路由取决于其他条件


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

谢谢。我读到了关于
isWiredHeadsetOn()
的gotchas。这就是为什么我玩弄了ACTION_耳机_插头。出于某种原因,我错过了AudioManager的
isSpeakerphoneOn()
以及您提到的其他方法,因此感谢您。事实上,无论是插入有线耳机还是将蓝牙耳机接入网络,对我来说都无关紧要。只要音频没有传到扬声器,
onCreate()
就应该继续。