#android #android-layout #android-source #android-homebutton #android-sound
#Android #android-макет #android-исходный код #android-домашняя кнопка #android-звук
Вопрос:
Мне нужно знать, где именно звук был реализован в функции back и recent. Когда я касаюсь / щелкаю, у значка home и recent появляется звук. Я не хочу делать это в пользовательском приложении. У меня есть исходный код aosp для Android 10. Итак, мне нужно знать, в какой папке / методе этот звук был реализован для back и recent?
Ответ №1:
Проверьте методы AudioManager.playSoundEffect (): https://cs.android.com/android/platform/superproject/ /master:frameworks/base/media/java/android/media/AudioManager.java;l=2596;drc=master;bpv=1;bpt=1
Javadoc для этого метода говорит:
/**
* Plays a sound effect (Key clicks, lid open/close...)
* @param effectType The type of sound effect. One of
* {@link #FX_KEY_CLICK},
* {@link #FX_FOCUS_NAVIGATION_UP},
* {@link #FX_FOCUS_NAVIGATION_DOWN},
* {@link #FX_FOCUS_NAVIGATION_LEFT},
* {@link #FX_FOCUS_NAVIGATION_RIGHT},
* {@link #FX_KEYPRESS_STANDARD},
* {@link #FX_KEYPRESS_SPACEBAR},
* {@link #FX_KEYPRESS_DELETE},
* {@link #FX_KEYPRESS_RETURN},
* {@link #FX_KEYPRESS_INVALID},
* NOTE: This version uses the UI settings to determine
* whether sounds are heard or not.
*/
Используя это, вы можете пропустить воспроизведение для нужного вам звукового эффекта.
Если вы хотите вместо этого отключить все звуковые эффекты, для этого есть запись в настройках:
Смотрите frameworks/base/core/java/android/provider/Settings.java
:
/**
* Whether the sounds effects (key clicks, lid open ...) are enabled. The value is
* boolean (1 or 0).
*/
public static final String SOUND_EFFECTS_ENABLED = "sound_effects_enabled";
Вы можете изменить это с помощью:
Settings.System.putInt(mContext.getContentResolver(), SOUND_EFFECTS_ENABLED, 0);