2011-08-20 6 views
13

Androidサービスで音量をリッスンして反応する方法はありますか?ボリューム変更リスナー?

Btw:音楽がバックグラウンドで再生されている場合でも、Googleミュージックアプリでユーザーはメディアボリュームをどのように制御できますか?

答えて

12

registerMediaButtonEventReceiver(ComponentName broadcastReceiver);

をチェックアウトはACTION_MEDIA_BUTTONを処理BroadcastReceiverを定義します。受信されたintentには、ブロードキャストを引き起こしたキーイベントを含む単一の追加フィールドEXTRA_KEY_EVENTが含まれています。このキーイベントを使用して、どのキーが押されたかを取得できます。


編集:
これは単なるサンプルコードです。構文エラーが存在する可能性があります。

// in onCreate of activity 
registerMediaButtonEventReceiver(mediaReceiver); 

// later somewhere in activity. 
MediaButton_Receiver mediaReceiver = new MediaButton_Receiver(); 

class MediaButton_Receiver implements BroadcastReceiver { 
    void onReceive(Intent intent) { 

      KeyEvent ke = (KeyEvent)intent.getExtra(Intent.EXTRA_KEY_EVENT); 
      if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) { 

      } 
      // Similarly other key codes ....... 
    } 
} 

登録解除onPause()またはonStop()

+0

における受信機は、あなたはその例をしてください与えることはできますか? – kevdliu

+0

サンプルコードを追加しました。しかし、構文エラーがあります。また、アクションキーを確認するか、キーを押してください。これは良いことですが、後で追加してください。 – Ronnie

+0

また、受信者の登録を忘れないと、メディアボタンイベントを使用する他のアプリケーションが影響を受ける可能性があります。 – Ronnie

関連する問題