Форум программистов, компьютерный форум CyberForum.ru

Листенер на кнопки громкости. Как правильно? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Обращение к методу другого класса http://www.cyberforum.ru/android-dev/thread1102544.html
Привет Не пинайте за возможный бред, я учусь) В общем мне необходимо вызвать метод класса Auth из другого класса. Сам метод public void CreateRecord(){ Toast.m akeText(this, "НЕГАТИВНО :'(", Toast.LENGTH_SHORT).show(); // проверочное сообщение Intent intent2 = new Intent(getApplicationContext(), MainActivity.class); // переход на другой активити startActivity(intent2);
Android Как запретить закрытие активити? Привет, имеется активити которое отображается в виде диалогового окна - Theme.dialog На ней имеются 2 кнопки "Отмена" "Принять", в общем не суть. Когда тапаешь пальцем по свободному пространству от окошка активити, активити конечно закрывается. и фокус переходит к активити на заднем фоне. Вопрос: Как сделать так что бы оно не закрывалась таким образом? Нужно что бы все было через кнопки ... http://www.cyberforum.ru/android-dev/thread1102528.html
Android IntelliJ IDEA. Перестал компилироваться проект
Выскакивает окно об ошибке в aapt.exe. Другой проект компилируется. Удалял папки gen, но не помогло. Описание ошибки: <?xml version="1.0" encoding="UTF-16"?> <DATABASE> <EXE NAME="aapt.exe" FILTER="GRABMI_FILTER_PRIVACY"> <MATCHING_FILE NAME="aapt.exe" SIZE="852480" CHECKSUM="0xC95B011A" MODULE_TYPE="WIN32" PE_CHECKSUM="0xD9514" LINKER_VERSION="0x10000" LINK_DATE="10/23/2013...
Android Как изменить переменную в другом Activity?
Как изменить переменную в другом Activity?
Android Менять размеры LinearLayout пальцем http://www.cyberforum.ru/android-dev/thread1102347.html
В Delphi/windows был компонент "разделитель", схватив который можно было увеличить/уменьшить одну панель за счет размера другой. (пример: две половинки TotalCommander) Хочу нечто подобное сделать и в Андроид. Создал 3 лейаут. Обрабатываю движения пальцем на средней и пытаюсь изменить высоту одного из крайних (с фиксированой высотой в XML). Но... НИКАКОЙ реакции! ((LinearLayout)...
Android Как запретить activity возвращаться на предыдущий экран по нажатию на физическую кнопку back Как запретить activity возвращаться на предыдущий экран по нажатию на физическую кнопку back? подробнее

Показать сообщение отдельно
MegaSinner
 Аватар для MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746

Листенер на кнопки громкости. Как правильно? - Android

22.02.2014, 17:37. Просмотров 591. Ответов 0
Метки (Все метки)

Цель: определение и различие нажатий кнопок Громче/Тише, даже если увеличивать/уменьшать некуда и должно работать при свернутом приложении.
Начал вот с этого кода, но в нем сразу два бага:
1) при разовом нажатии кнопки громкости, событие срабатывает 4 раза, а при быстром двойном - шесть
2) если громкость увеличивать или уменьшать уже некуда, то нажатие не обрабатывается.

Java
1
2
SettingsContentObserver mSettingsContentObserver = new SettingsContentObserver(this,new Handler());
        getApplicationContext().getContentResolver().registerContentObserver(android.provider.Settings.System.CONTENT_URI, true, mSettingsContentObserver );
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    public class SettingsContentObserver extends ContentObserver {
        int previousVolume;
        Context context;
 
        public SettingsContentObserver(Context c, Handler handler) {
            super(handler);
            context=c;
 
            AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            previousVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
        }
 
        @Override
        public boolean deliverSelfNotifications() {
            return super.deliverSelfNotifications();
        }
 
 
        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            Button btn = (Button)findViewById(R.id.button);
            AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            int currentVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
 
            int delta=previousVolume-currentVolume;
            cnter++;
            btn.setText(cnter+"");
            if(delta>0)
            {
                previousVolume=currentVolume;
            }
            else if(delta<0)
            {
                previousVolume=currentVolume;
            }
        }
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru