能够修改系统按键音,亲测有效,项目中正在使用中
效果图
/frameworks/base/core/res/res/xml/audio_assets.xml
<audio_assets version="1.0">
<group name="touch_sounds">
<asset id="FX_KEY_CLICK" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_UP" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_DOWN" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_LEFT" file="Effect_Tick.ogg"/>
<asset id="FX_FOCUS_NAVIGATION_RIGHT" file="Effect_Tick.ogg"/>
<asset id="FX_KEYPRESS_STANDARD" file="KeypressStandard.ogg"/>
<asset id="FX_KEYPRESS_SPACEBAR" file="KeypressSpacebar.ogg"/>
<asset id="FX_KEYPRESS_DELETE" file="KeypressDelete.ogg"/>
<asset id="FX_KEYPRESS_RETURN" file="KeypressReturn.ogg"/>
<asset id="FX_KEYPRESS_INVALID" file="KeypressInvalid.ogg"/>
<asset id="FX_KEYPRESS_CUSTOM" file="boom.ogg"/>
</group>
</audio_assets>
加载设备的xml的按键资源文件/frameworks/base/core/res/res/xml/audio_assets.xml的方法
public List<KeysSoundModel> mList;
public String TAG_AUDIO_ASSETS = "audio_assets";//根目录
public String TAG_GROUP = "group";
public String ATTR_GROUP_NAME = "name";
public String GROUP_TOUCH_SOUNDS = "touch_sounds";
public String ATTR_ASSET_ID = "id";
public String ATTR_ASSET_FILE = "file";
public String TAG_ASSET = "asset";
public String TAG_TOUCH_SOUNDS = "touch_sounds";
// 加载系统按键音的资源
private void loadTouchSoundAssets() {
mList=new ArrayList<>();
XmlResourceParser parser = null;
try {
//获得XML对象
parser = context.getResources().getXml(com.android.