2015-04-12 20 views
0

我的問題是,當我嘗試將接收器註冊到音樂播放器廣播接收器僅

IntentFilter iF = new IntentFilter(); 
iF.addAction("com.android.music.metachanged"); 
iF.addAction("com.android.music.playstatechanged"); 
registerReceiver(mReceiver, iF); 

當任何玩家運行此接收器啓動。我只想在默認音樂播放器更改的情況下收到通知。 如何獲得默認播放器的獨特動作?

+0

您究竟想要達到什麼我不明白。你的應用做什麼? – Squonk

+0

我正在爲設備音樂播放器開發一個控制器,這個控制器被鏈接到服務而不是活動(浮動窗口),所以我需要跟蹤和控制音樂播放器,而不是每個音樂播放器。這個接收器會分散我的注意力。 – iKilany

回答

0

發生這種情況是因爲您正在監聽MusicPlayer操作而不是應用程序包名稱。所有音樂播放器午餐採取相同的行動com.android.music.playstatechanged

您需要使用應用程序的包名稱過濾此操作。我還沒有用音樂播放器自己嘗試過,但試試看。在接收器中添加此檢查線。您可以用任何其他軟件包替換此軟件包名稱以用於任何應用程序

if (intent.getAction().substring(0, action.lastIndexOf(".")).equals("com.google.android.music")) { 

} 
+0

不幸的是無法正常工作 – iKilany

+0

@iKilany通過更改當前軟件包名稱及其軟件包名稱來嘗試與設備上的其他音樂播放器進行調試,以確定它是否正常工作 –

+0

我認爲我這樣做了,可能是我無法理解最後的評論正確 – iKilany