如何在安卓系统中查找扬声器是否开启

4

我需要通过编程找出扬声器是否打开。

我知道我们可以使用以下方法来查找它是否打开。

AudioManager.isSpeakerphoneOn();

在我这种情况下,即使返回false,扬声器也会以某种方式开启。 我需要知道以下两件事:
1.是否有广播行动来查找扬声器状态。
2.是否有办法找到扬声器电话状态的变化。

你是如何获取你的AudioManager的呢?我希望你是从你的应用程序上下文中获取的。(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 如果是这样,它应该可以工作。(因为它是一个系统级服务,除非你的应用程序正在处理电话等其他操作,否则你不需要干预它) - uncaught_exceptions
是的,实际情况是一旦语音通话连接,我就会启动我的应用程序。在这种情况下,扬声器会打开。现在是否与电话有关?您能否提供建议? - user388269
我认为你应该使用广播接收器,就像这里展示的一样:铃声模式更改监听器广播接收器 - Lavekush Agrawal
3个回答

0

尝试使用以下代码实现扬声器开启功能。

AudioManager audioManager = (AudioManager) Home.this.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
audioManager.setMode(AudioManager.MODE_IN_CALL);

0

这是你要的

AudioManager audioManager = (AudioManager) MainActivity.this .getSystemService(Context.AUDIO_SERVICE);
    audioManager.setMode(AudioManager.MODE_IN_CALL);

    if(audioManager.isSpeakerphoneOn()){
        audioManager.setSpeakerphoneOn(true);


    }else if(!audioManager.isSpeakerphoneOn()){


    }

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接