Cómo detener el timbre del teléfono al reproducir (hablar) el nombre de la persona que llama y luego volver a sonar el teléfono

Quiero hablar el nombre de la persona que llama cuando el teléfono está sonando. Sé cómo conseguir el número entrante del llamador con su nombre

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); 

Sé cómo escuchar con android.intent.action.PHONE_STATE y cogerlo cuando el teléfono comienza a sonar.

También sé cómo hablar el nombre de la persona que llama con TextToSpeech.OnInitListener pero estoy teniendo problema cómo dejar de timbrar y jugar el nombre del llamador y luego comenzar a sonar de nuevo.

¿Cómo dejar de timbrar hasta que no se reproduzca el nombre de la persona que llama? Estoy buscando, pero no puedo encontrar la solución.

Me temo que es imposible de hacer. La referencia de Android no cubre esto, pero lo probé durante un tiempo y pude controlar el volumen del timbre sólo en una etapa muy temprana de una llamada (antes de que puedas oír el sonido). Cada cambio que realice después de que suene llegará a efecto justo después de la llamada termina (por lo tanto, con la próxima llamada). No sé cuál es el comportamiento de los otros arroyos, sin embargo, sólo estaba interesado en este (pero esto no importa, supongo, porque no se puede silenciar STREAM_RING).

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.