好的,如果我们想从硬件'后退'按钮
禁用android'默认声音'如果它是android中的对象
我们可以通过
禁用它onClick (View v) {
v.setSoundEffectsEnabled(false);
}
或通过
通过xml禁用它<Button
android:id="@+id/bSignin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:soundEffectsEnabled="false"
/>
但是,如果是硬件按钮
怎么做?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK )
{
// ?
}
}
注意:我不想完全禁用所有声音,我只想禁用默认声音并播放应用程序声音
答案 0 :(得分:3)
这是可能的,我发现this answer并希望分享它,因为我能够使用此解决方案禁用硬件默认后退按钮。这是代码:
@override
public void onResume(){
super.onResume();
AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true);
}
@override
public void onPause(){
super.onPause();
AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, false);
}
答案 1 :(得分:0)
你可以试试这个:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK )
{
return false;
}
}
答案 2 :(得分:-1)
我认为这是不可能的。
系统设置中有一个选项供用户执行。硬件后退按钮不是您的应用程序的一部分。用户的工作是决定他们是否想要听到它。你无法决定。