我想在电话响铃时说出来电者姓名。我知道如何以他的名字
获得来电者来电号码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
说出来电者姓名,但我遇到问题如何停止响铃并播放来电者姓名然后再开始响铃。
如何停止响铃,直到未播放来电者姓名?我正在寻找,但我找不到解决方案。
答案 0 :(得分:0)
我担心这是不可能的。 Android参考文献没有涵盖这一点,但我测试了一段时间,我只能在通话的早期阶段(听到声音之前)控制铃声音量。您发出声音后所做的每一项更改都会在通话结束后生效(因此,下次通话时)。我不知道其他流的行为是什么,我只对这一行感兴趣(但这无关紧要,因为你不能将STREAM_RING静音)。