如何禁用所有我的应用程序或活动的默认声音效果

在我的应用程序中,我使用声音池作为button单击audio效果。 问题是,如果在设备的设置中select了“Audible selection”,那么我的button将会产生两个声音:系统一和我的一个在同一时间。

似乎如果在每个button属性中将“Sound Effects Enabled”设置为false,则系统声音不再被听到。 但是我在十几个活动中有许多button,另外我在代码中添加了一个buttonmatrix,所以将“启用声音效果”设置为手动设置为每个button都是非常不方便的。 不知道我是如何做到这一点的代码..

是否有更全面的方法来阻止我的应用程序中的“Audible selection”选项,或者至less是针对这一项活动?

创build一个主题文件“res / values / styles.xml”

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppBaseTheme" parent="android:Theme.Black.NoTitleBar"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="android:soundEffectsEnabled">false</item> </style> </resources> 

然后在你的“AndroidManifest.xml”中引用它

 <application ... android:theme="@style/AppTheme" > 

我刚刚对我的应用程序有同样的问题。 我可以通过在主题中添加android:soundEffectsEnabled=false来全局closures声音反馈。

你可以创build你自己的Button类,并在XML布局文件中使用它…

 package com.mycompany.myApp public class MyButton extends Button { public MyButton (Context context, AttributeSet attrs) { this.setSoundEffectsEnabled(false); } } 

然后在XML布局文件中使用…

 <com.mycompany.myApp.MyButton ... </com.mycompany.myApp.MyButton> 

…为你的button。

您可以创build一个自定义视图,该视图从Button延伸。 然后,只需将Sound Effect Enabled设置为false即可。

http://developer.android.com/guide/topics/ui/custom-components.html

您也可以走得更远,让视图知道应该播放哪个新的自定义声音。