在来电Android中打开扬声器 [英] Turn ON speaker in incoming call Android

查看:309
本文介绍了在来电Android中打开扬声器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想打开扬声器并将其设置为最大音量. 在我的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语句,它可以正常工作,但在他的情况下,发言者保持沉默.

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

谢谢您的帮助.

解决方案

已安装

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

使用

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

因为传入的号码可能带有国家代码的+或具有国家代码的00.因此,您只需要检查传入呼叫的​​号码是否包含所需的号码即可.

希望有帮助...

I would like to turn on the speaker and set it to maximum volume. In my PhoneStateListener I'm intercepting the incoming call, and it works fine for any incoming/outgoing call.

The thing is that I want to turn on this feature only for two specific incoming numbers.

This is my code:

    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;

Without the if statement it works fine but int his case the speaker stays off.

Please advise what I'm doing wrong or how to achieve my goal?

Thank you for your help.

解决方案

Instaed of

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

use

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

Because the incoming number might have + with country code or 00 with country code. So you just have to check if the incoming call's number contains the required number.

Hope it helps...

这篇关于在来电Android中打开扬声器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆