PhoneStateListener onMessageWaitingIndicatorChanged () wird nicht zuverlässig aufgerufen

Ich habe einen Code, der erkennt, wann es neue Voicemail gibt. Es basiert auf einer PhoneStateListener.onMessageWaitingIndicatorChanged() Implementierung (so technisch wird es nur dann ausgelöst, wenn sich der MWI-Indikator ändert, nicht unbedingt für jede neue Voicemail).

Es funktioniert seit vielen Monaten perfekt, bis 4.xx auf die Geräte aktualisiert wird.

  • Warum wird die Ansicht mit ViewDragHelper auf ihre ursprüngliche Position auf dem Layout () zurückgesetzt?
  • Wie man eine Fortschrittsanzeige in Android anpasst
  • Wie man Steigung Hintergrund in Android zu machen
  • Hinzufügen von Zuhörer vs set listener
  • Zxing Kamera im Hochformat auf Android
  • Fehler beim Aktualisieren des SDK mit dem SDK-Manager
  • Nun, das funktioniert, wenn das Gerät neu gestartet wird, sonst ist es sehr unzuverlässig. Ich kann sehen, dass das Voicemail-Symbol in der Benachrichtigungsleiste onMWIChanged , aber das Debug-Logs onMWIChanged bleibt still.

    Ich weiß, dass mit 4.xx gibt es eine Voicemail-Provider-API. Denken, dass dies eine Verbindung haben könnte, fügte ich die android.intent.action.NEW_VOICEMAIL und android.intent.action.PROVIDER_CHANGED Intents zu meinem Empfänger, aber sie nicht Feuer (in meinem BroadcastReceiver onReceive ) entweder (meine app's minSdkVersion ist 8 ).

  • Nein, minSdk (API 15)> deviceSdk (API1) im Android-Studio
  • IR Emitter und Android 5.0
  • BroadcastReceiver: Kann nicht instanziieren Klasse; Kein leerer Konstruktor
  • Programmieren Sie standardmäßig setTextSize auf? Attr / textAppearanceLarge
  • Roboto inkonsistente Schrifthöhe
  • Android Studio Rendering Probleme, Klassen konnte nicht gefunden werden
  • 2 Solutions collect form web for “PhoneStateListener onMessageWaitingIndicatorChanged () wird nicht zuverlässig aufgerufen”

    Dies ist ein Beitrag von Android Developers über die Android 4.0 APIs.

    http://developer.android.com/about/versions/android-4.0.html

    Wenn Sie nach unten scrollen, gibt es einen Abschnitt über Voicemail-Provider, wo es erklärt:

    Da die APIs derzeit nicht erlauben, dass Drittanbieter-Apps alle Voicemails aus dem System lesen, sind die einzigen Apps von Drittanbietern, die die Voicemail-APIs verwenden sollten, diejenigen, die Voicemail an den Benutzer übermitteln müssen.

    Allerdings nehme ich an, wenn du versuchst, Voicemails von einem Dritten zu empfangen und nicht von deinem Service, dann ist das vielleicht noch möglich. Überprüfen Sie diesen Link über VoicemailContracts, wo ich glaube, dass es sagt, dass Sie die Erlaubnis ADD_VOICEMAIL in Ihrem Manifest benötigen, um die Aktionen zu verwenden, die Sie oben verwenden.

    http://developer.android.com/reference/android/provider/VoicemailContract.html

    Es gibt auch Beispiele, dass ich keine Chance bekomme, die Voicemail Provider Demo in deinem SDK anzuschauen. Ich hoffe das hilft.

    Es erfordert die Berechtigung READ_PHONE_STATE. Obwohl, wenn es gearbeitet hat, bevor Sie es haben mussten.

    Siehe LISTEN_MESSAGE_WAITING_INDICATOR .

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.