播放(说话)来电者姓名然后再打电话时如何停止电话铃声

时间:2012-08-21 06:25:57

标签: android

我想在电话响铃时说出来电者姓名。我知道如何以他的名字

获得来电者来电号码
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

        Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(incomingNumber)); 
        Cursor cursor = context.getContentResolver().query(uri, new String [] {PhoneLookup.DISPLAY_NAME}, null, null, null);

        if (cursor.moveToFirst()) {
            callerName = cursor.getString(0);
        }

        Log.d(TAG, "Display name: " + callerName);

我知道如何倾听android.intent.action.PHONE_STATE并在电话开始响铃时抓住它。

我也知道如何用TextToSpeech.OnInitListener说出来电者姓名,但我遇到问题如何停止响铃并播放来电者姓名然后再开始响铃。

如何停止响铃,直到未播放来电者姓名?我正在寻找,但我找不到解决方案。

1 个答案:

答案 0 :(得分:0)

我担心这是不可能的。 Android参考文献没有涵盖这一点,但我测试了一段时间,我只能在通话的早期阶段(听到声音之前)控制铃声音量。您发出声音后所做的每一项更改都会在通话结束后生效(因此,下次通话时)。我不知道其他流的行为是什么,我只对这一行感兴趣(但这无关紧要,因为你不能将STREAM_RING静音)。