Как отключить звук в задней и недавнем касании Android?

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