android - number - PhoneStateListener onMessageWaitingIndicatorChanged() no se llama de forma confiable
voicemail number (2)
Esta es una publicación de los desarrolladores de Android sobre las API de Android 4.0.
http://developer.android.com/about/versions/android-4.0.html
Si se desplaza hacia abajo, hay una sección sobre Proveedores de correo de voz donde se explica:
Debido a que las API actualmente no permiten que las aplicaciones de terceros lean todos los correos de voz del sistema, las únicas aplicaciones de terceros que deben usar las API de correo de voz son aquellas que tienen correo de voz para entregar al usuario.
Sin embargo, supongo que si está tratando de recibir correos de voz de un tercero y no de su servicio, esto todavía puede ser posible. Echa un vistazo a este enlace sobre Contratos de correo de voz donde creo que dice que necesitas el permiso ADD_VOICEMAIL en tu manifiesto para usar las acciones que estás utilizando arriba.
http://developer.android.com/reference/android/provider/VoicemailContract.html
También hay muestras que no tuve la oportunidad de ver en el SDK de la demostración del proveedor de correo de voz . Espero que esto ayude.
Tengo un código que detecta cuando hay un nuevo correo de voz. Se basa en una implementación de PhoneStateListener.onMessageWaitingIndicatorChanged()
(por lo que técnicamente se dispara solo cuando cambia el indicador MWI, no necesariamente para cada nuevo correo de voz).
Ha estado funcionando perfectamente durante muchos meses hasta que 4.xx se actualiza a los dispositivos.
Ahora, esto funciona cuando el dispositivo se reinicia, de lo contrario es muy poco confiable. Puedo ver el ícono del correo de voz en la barra de notificaciones, pero los registros de depuración onMWIChanged
permanecen en silencio.
Sé que con 4.xx hay una API de proveedor de correo de voz. Pensando que esto podría tener una conexión, agregué los intentos de android.intent.action.NEW_VOICEMAIL
y android.intent.action.PROVIDER_CHANGED
a mi receptor, pero tampoco se onReceive
(en mi BroadcastReceiver
onReceive
) (mi aplicación es minSkkVersion 8 ).
Requiere el permiso READ_PHONE_STATE. Aunque, si funcionó antes, debe de haberlo establecido.