0

我需要知道在后面和最近的功能中究竟在哪里实现了声音。当我触摸/单击时,主页和最近图标有声音。我不想在用户应用程序中做。我有 Android 10 的 aosp 源代码。所以我需要知道在哪个文件夹/方法中,这个声音已经为 back 和 recent 实现了?

4

1 回答 1

0

检查 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);
于 2020-11-01T20:39:53.997 回答