2013-04-04 55 views
0

我已經編寫了一個應用程序,通過藍牙連接到揚聲器基座。該應用程序控制EQ,低音/高音等打開藍牙耳機插孔後音頻會暫停(Android 2.x)

一旦與塢配對時,Android設備將自動開始播放音樂通過它內置的媒體播放器,因爲它看到了被告席作爲一個耳機。

但是,一旦我啓動我的應用程序,音頻會在大多數2.x設備上暫停。

當我打開設備的套接字後,我問它的固件/硬件版本。在查看日誌時,我看到這些命令已成功接收,然後顯示:

04-04 07:23:16.566: E/BluetoothIntentReceiver(5616): onReceive() Action : android.intent.action.MEDIA_BUTTON 
04-04 07:23:16.566: D/BluetoothIntentReceiver(5616): onReceive() KeyEvent : KeyEvent{action=0 code=85 repeat=0 meta=0 scancode=200 mFlags=8} 
04-04 07:23:16.566: E/BluetoothIntentReceiver(5616): onReceive() Command : togglepause,mDown=false 
04-04 07:23:16.632: E/BluetoothIntentReceiver(5616): onReceive() Action : android.intent.action.MEDIA_BUTTON 
04-04 07:23:16.632: D/BluetoothIntentReceiver(5616): onReceive() KeyEvent : KeyEvent{action=1 code=85 repeat=0 meta=0 scancode=200 mFlags=8} 
04-04 07:23:16.632: E/BluetoothIntentReceiver(5616): onReceive() Command : togglepause,mDown=true 

這就是暫停音樂的原因。我不確定這些KeyEvent是從哪裏生成的,因爲我甚至沒有拿着這個設備。

正如我所提到的,這似乎只發生在2.x設備上。

有沒有人知道爲什麼音頻暫停,以及如何阻止它?

+0

'code = 85'應該是'KEYCODE_MEDIA_PLAY_PAUSE'。在您看到日誌中的意圖之前,您的應用會做什麼? – Michael 2013-04-04 12:44:25

+0

@邁克爾 - 沒有什麼是真的。我正在向碼頭髮送/接收數據。但是我沒有任何應用程序中的代碼來生成按鍵。 – Innova 2013-04-04 13:32:28

回答

0

我從來沒有想過爲什麼keyevent得到生成,但幸運的是我的應用程序能夠抓住它。我創建了一個onKeyDown方法,並查找KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE。如果我在啓動我的應用程序的前5秒內找到該代碼,則返回true。

這適用於我的情況,但沒有找到根本原因。