3

我想打开扬声器并将其设置为最大音量。在我的 PhoneStateListener 中,我正在拦截来电,它适用于任何来电/去电。

问题是我只想为两个特定的传入号码打开此功能。

这是我的代码:

    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 语句,它可以正常工作,但在他的情况下,演讲者会保持关闭状态。

请告知我做错了什么或如何实现我的目标?

谢谢您的帮助。

4

1 回答 1

0

代替

incomingNumber.equals( strRegisterNumber1) || incomingNumber.equals( strRegisterNumber2) 

利用

incomingNumber.contains( strRegisterNumber1) || incomingNumber.contains( strRegisterNumber2)

因为传入的号码可能+带有国家代码或00国家代码。因此,您只需检查来电号码是否包含所需的号码。

希望能帮助到你...

于 2013-04-24T09:57:15.613 回答