Java 打开呼入通话中的扬声器
我想打开扬声器并将其设置为最大音量。 在我的PhoneStateListener中,我正在拦截传入呼叫,它对任何传入/传出呼叫都可以正常工作 问题是,我只想为两个特定的输入号码启用此功能 这是我的代码:Java 打开呼入通话中的扬声器,java,android,audio,speaker,Java,Android,Audio,Speaker,我想打开扬声器并将其设置为最大音量。 在我的PhoneStateListener中,我正在拦截传入呼叫,它对任何传入/传出呼叫都可以正常工作 问题是,我只想为两个特定的输入号码启用此功能 这是我的代码: case TelephonyManager.CALL_STATE_OFFHOOK: if (incomingNumber.equals( strRegisterNumber1) || incomingNumber.equals( strRegisterNumber2))
case TelephonyManager.CALL_STATE_OFFHOOK:
if (incomingNumber.equals( strRegisterNumber1) || incomingNumber.equals( strRegisterNumber2))
{
AudioManager audioManager = (AudioManager) contextMember.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
}
break;
如果没有if语句,它可以正常工作,但在他的情况下,演讲者不说话
请告知我做错了什么或如何实现我的目标
谢谢你的帮助。安装
incomingNumber.equals( strRegisterNumber1) || incomingNumber.equals( strRegisterNumber2)
使用
因为输入的号码可能有带有国家代码的+
,或带有国家代码的00
。因此,您只需检查来电号码是否包含所需号码
希望对您有所帮助……因此,如果我理解正确,您的扬声器启用/设置音量代码正在工作-字符串比较总是返回false?您是否尝试记录所有三个字符串以查看它们包含的内容?是的。两条线。真奇怪。它们包含的输入号码完全符合我的要求。我不明白问题出在哪里。我稍后使用相同的if语句,它返回true!试过了。没有变化。无论如何,谢谢。您是否检查/打印/记录了
if
语句前面的incomingNumber
、stregisternumber1
和stregisternumber2
的值。
incomingNumber.contains( strRegisterNumber1) || incomingNumber.contains( strRegisterNumber2)