Die meisten Apps, die eine Audiowiedergabe beinhalten – vor Allem Audio- und Videoplayer aber auch Navigationssysteme mit Sprachausgabe und Spiele – fordern in ihrem Manifest READ_PHONE_STATE an, um über eingehende Anrufe im PhoneStateListener()
-Callback benachrichtigt zu werden.
Leider erlaubt das Recht aber viel mehr, als nur eingehende Anrufe festzustellen – so besteht beispielsweise auch Zugriff auf die Nummern der Anrufer oder die IMEI des Gerätes. Allgemein herrscht auch die Auffassung (auch bei Entwicklern), dass dies notwendig wäre – wirklich?
Nein – tatsächlich geht es besser: Statt PhoneStateListener()
zu benutzen, wofür das Recht READ_PHONE_STATE nötig ist, kann man auch onAudioFocusChange()
verwenden. Dafür sind keine besonderen Rechte erforderlich, es werden keine vertraulichen Daten offengelegt und dieser Callback ist auch genau für den Zweck gedacht, dass Apps ihre Wiedergabe leiser stellen oder unterbrechen, wenn nötig.
Siehe auch: Dokumentation OnAudioFocusChangeListener