13

音量ボタンを引き継ぐだけでなく、Androidで音量変更のイベントを聞く方法はありますか?

私が見つけた唯一の機能はここにありますが、ボリュームコントロールが消えた後にのみ機能します。

すべてのデバイスに音量ボタンがあるわけではありません。音量ダイアログが消えた後ではなく、音量の変化が発生したらすぐにキャプチャする必要があります。

4

4 に答える 4

2

ブロードキャスト レシーバーの VOLUME_CHANGED_ACTION を使用してから、AudioManager を使用して現在の音量を取得します。

<receiver android:name="VolumeChangeReceiver" >
    <intent-filter>
         <action android:name="android.media.VOLUME_CHANGED_ACTION" />
    </intent-filter>
</receiver>
于 2014-02-13T19:25:34.713 に答える
0

使用できます: registerMediaButtonEventReceiver (ComponentName eventReceiver) コンポーネントを MEDIA_BUTTON インテントの唯一のレシーバーとして登録します。

//  in your activity.
MediaButtonReceiver receiver = new MediaButtonReceiver();

// in onCreate put
registerMediaButtonEventReceiver(receiver); 

class MediaButtonReceiver implements BroadcastReceiver {
     void onReceive(Intent intent) {
          KeyEvent ke = (KeyEvent)intent.getExtra(Intent.EXTRA_KEY_EVENT); 
          if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
            //action when volume goes down
          }
           if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
              //action when volume goes up
          }
     } 
}

   //In both onStop and onPause put :
   unregisterMediaButtonEventReceiver(receiver);

ここで行っているのは、ACTION_MEDIA_BUTTON を処理する BroadcastReceiver を定義することです。ブロードキャストが押されたものを取得し、それに基づいて動作する原因となったキーイベントを含む EXTRA_KEY_EVENT を使用します。

于 2012-07-03T21:57:25.170 に答える