1

このコードは機能せず、画面がロックされます。画面がロックされているときに音量キーを機能させたい場合はどうすればよいですか?

私のコードは次のとおりです。

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
        switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_UP) {
                //TODO
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                //TODO
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
        }
    }
4

2 に答える 2

3

BroadcastReceiverアクション「android.media.VOLUME_CHANGED_ACTION」で登録できます:

android.media.VOLUME_CHANGED_ACTION

他の方法は次のとおりです 。Androidのボリュームキー

于 2012-04-27T12:50:19.737 に答える
3

サービスでこれを行います。

public class MyService extends Service {

@Override
public void onCreate() {
    super.onCreate();
    final BroadcastReceiver vReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
             //your code here
        }
    };
    registerReceiver(vReceiver, new IntentFilter("android.media.VOLUME_CHANGED_ACTION"));
}

}

次に、BroadcastReceiver にIntent.ACTION_SCREEN_OFF、画面がオフのときにサイレント サウンドを連続して再生するアクションと、画面がオンIntent.ACTION_SCREEN_ONのときに音楽を停止するアクションを登録します。音量ボタンは、音楽が再生されているときにのみアクティブになります。

于 2016-06-28T07:26:49.707 に答える