Вопрос по android – Используйте клавишу громкости при заблокированном экране

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);
        }
    }

Ваш Ответ

2   ответа
2

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 остановить музыку при включенном экране. Кнопки громкости активны только при воспроизведении музыки.

Большое спасибо, как я могу непрерывно воспроизводить тихий звук? Reza Shek
Вы можете использовать SoundPool, MediaPlayer или ToneGenerator. С двумя участниками, загрузите пустой музыкальный файл отсюдаxamuel.com/blank-mp3s используйте SoundPool.play (load, 0, 0, 0, -1, 1) или MediaPlayer.setLooping (true) и .setVolume (0,0) для воспроизведения тихого и непрерывного звука. С ToneGenerator используйте ToneGenerator.startTone (ToneGenerator.TONE_CDMA_DIAL_TONE_LITE).developer.android.com/reference/android/media/SoundPool.html developer.android.com/reference/android/media/MediaPlayer.html developer.android.com/reference/android/media/…
3

Вы можете зарегистрироватьсяBroadcastReceiver с действием & quot; android.media.VOLUME_CHANGED_ACTION & quot; :

android.media.VOLUME_CHANGED_ACTION

Другой способ сделать это:клавиша громкости на Android .

@ mrsh ты нашел решение для этого? Я сталкиваюсь с той же проблемой
это не работает. Я создал BroadCastReceiver, и он работает нормально, когда телефон не заблокирован, но как только телефон блокируется, я не могу захватить, если нажата клавиша. у тебя есть идеи? Reza Shek
К сожалению нет. если вы найдете что-нибудь, пожалуйста, держите меня в курсе. Спасибо. Reza Shek
мой код на самом деле работает нормально, но проблема в том, что он не работает, когда экран заблокирован. что мне нужно сделать? если возможно, приведите пример. благодарю вас. Reza Shek

Похожие вопросы