Como zapl dijo que no hay un método directo para hacerlo, pero puede intentar silenciar el volumen del sistema y, como usted, Tencent dijo que está evitando cualquier tipo de ataque. Entonces debo decir que no hay un método TANTO para hacer esto, pero aún así estoy compartiendo esta solución truco para aquellos que están sufriendo del mismo problema y que quizás no les importe un truco de "hackeo". Solo ahorrando sus horas de frustración.
Silencie el volumen del sistema para ese momento en particular y luego desactive el silencio. Cómo hacer esto:
En su clase, cree siguientes objetos
private AudioManager mAudioManager;
private int mStreamVolume = 0;
En el método de onCreate hacer después.
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Al iniciar la escucha de reconocimiento de voz, hace el siguiente
speechRecognizer.startListening(intent); // this method make that annoying sound
mStreamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); // getting system volume into var for later un-muting
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0); // setting system volume to zero, muting
En su discurso RecognitionListener interfaz debe haber un método onReadyForSpeech.
class MyRecognitionListener implements RecognitionListener
{
public void onReadyForSpeech(Bundle params)
{
// this methods called when Speech Recognition is ready
// also this is the right time to un-mute system volume because the annoying sound played already
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mStreamVolume, 0); // again setting the system volume back to the original, un-mutting
}
}
Así es como se puede jugar un truco con este sonido molesto. Obviamente, cualquier otro sonido también estará en silencio por un segundo.
Creo que el sonido es generado por el servicio de reconocimiento de voz, lo que significa que es poco probable que su aplicación cambie, especialmente porque no veo ninguna opción para ese sonido en la configuración del sistema o en la ventana de búsqueda de voz oficial. Podría intentar silenciar el volumen durante el reconocimiento de voz, pero eso también silenciaría cualquier música de fondo que pudiera estar en curso. – zapl
La música de fondo se corta de todos modos cuando se inicia el oyente de reconocimiento. Sin embargo, preferiría evitar usar un truco si es posible. ¡Apoyos para la idea! –