android - 如何在 Java 中以编程方式禁用有线耳机

标签 android audio soundpool android-audiomanager

请在这里引用我的问题。这个问题是对那个的扩展:

How to check and redirect audio between wired headset and speaker phone?

我能够通过包含权限部分解决我的问题

  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

在我的 Android Manifest 中同样的一段代码。现在,我可以启用和禁用电话扬声器,但我无法以编程方式关闭我的有线耳机连接,当有线耳机仍物理连接到电话时

有人可以帮我吗?是否有特定的 Intent 可以用来禁用启用有线耳机连接?

最佳答案

我在网上找了解决办法,有所收获

private class MusicIntentReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
            int state = intent.getIntExtra("state", -1);
            switch (state) {
                case 0:
                    audioManager.setSpeakerphoneOn(true);
                    break;
                case 1:
                    audioManager.setSpeakerphoneOn(false);
                    break;
                default:
                    audioManager.setSpeakerphoneOn(true);
            }
        }
    }
}

希望对你有帮助

如果你想访问该网站,这里是link

关于android - 如何在 Java 中以编程方式禁用有线耳机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20949769/

相关文章:

android - 无法在 Android 的单个 native C++ 库文件中使用多个函数

java - 使用仅有效期几年的证书签署 Android 应用程序

java - Java 接口(interface)中的可选方法

c# - 当 c# 中的扬声器没有声音时,如何使用 WasapiLoopbackCapture 录制音频?

audio - iOS - 转换音频格式(作品到 mp3)

android - Soundpool 不同的 streamid

android - Android:同步两个mediaPlayers(一个又一个播放)-消除差距

java - Cupcake(API3) 在 SoundPool 中暂停/停止声音循环的友好方式?有任何想法吗?

java - 在 Android 中跨 Activity 播放 BG 音乐

iphone - 停止AVAudioPlayer