android - 从硬件 'default sound' 按钮禁用 android 'back'

标签 android

好的,如果我们想从硬件“后退”按钮禁用 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 )
    {
    // ?
    }
}

注意:我不想完全禁用所有声音,我只想禁用默认声音并播放我的应用程序声音

最佳答案

这是可能的,我发现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);
}

关于android - 从硬件 'default sound' 按钮禁用 android 'back',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730402/

相关文章:

android - Travis CI 构建不适用于 Android 约束布局

android - 如何有效地编写针对同一私有(private)库的不同版本的具有不同构建风格的 Android 应用程序

android - 我如何在 Android XML 布局文件中使用 View 节点?

android - 自定义 Android 操作系统构建

android - 在 Android volley 库中使用 cookie

Android - Proguard 重复 zip 条目错误 - Android 支持库

android - 如何在不重启模拟器的情况下在 Genymotion 和 Android Studio 中重新加载应用程序?

Android使用gradle生成未签名的apk

android - 这是 Activity 启动模式、 list 或 Intent 标志的更好方法

android - 对于android库项目,<uses-sdk>在manifest中有意义吗?