2017-06-12 19 views
2

如何瞭解哪個應用正在播放/使用音樂流。我能夠通過廣播接收器BluetoothA2dp接收回調時,音頻播放或暫停/停止藍牙設備和廣播的名字下面給出:找到播放或使用藍牙音樂流的應用的軟件包名稱

android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED 

對於如。當我通過YouTube或視頻播放器在藍牙設備上播放音樂時,我收到了回撥BluetoothA2dp.STATE_PLAYING的行動 - BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED 但我無法獲取YouTube或視頻播放器應用程序包名稱。

我通過廣播接收器BluetoothHeadset收到回調時有藍牙設備與廣播接收機的名字傳入或傳出呼叫如下:

android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED 

有沒有辦法去了解軟件包的名稱,其在藍牙設備上播放音樂,或者如何通過接收者的意圖或上下文來獲取已經調用廣播接收器的包。

回答

0
  1. 用戶必須移動在移動通過像saavn,gaana或任何其他音樂應用程序的任何應用程序連接到藍牙設備現在
  2. 每當用戶播放音樂,音樂是流/藍牙設備上播放
  3. 現在播出接收器被稱爲是由行動註冊BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED =「android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED」
  4. ACTION_PLAYING_STATE_CHANGED我們得到的意圖通過B中的額外狀態luetoothA2dp.EXTRA_STATE
  5. 從額外的狀態,我們會檢查任何正在播放的音樂或通過停止BluetoothA2dp.STATE_PLAYING & BluetoothA2dp.STATE_NOT_PLAYING
  6. 如果正在播放音樂,然後我們檢查哪些應用程序/包當前正在播放的音樂通過類MediaSessionManager,例如,如果Saavn,Ganna音樂應用正在播放,那麼我們將獲得「com.saavn.android」,「com.gaana」
  7. 我們需要將接收者的意圖傳入到manager.getActiveSessions方法中,我們將獲得List MediaController
  8. 從列表中o f MediaController中,我們可以獲取正在播放音樂的應用程序的包名稱,列表的頂部名稱是當前正在播放音樂的包的名稱,例如,如果Saavn音樂應用在頂部播放,那麼我們將獲得「com.saavn .android「
相關問題