Ich verwende eine Überlagerungsberechtigung, um bestimmte Informationen in meiner App anzuzeigen. Es läuft auf API 23 - 25 und es funktioniert gut (bittet um Erlaubnis, Gewähren, etc. nach
Kann nicht hinzugefügt werden window android.view.ViewRoot$W@44da9bc0 - Berechtigung für diesen Fenstertyp verweigert ). (Vielen Dank an ceph3us!)
Gleiches über API 26 versuchen Ich erhalte einen Fehler, im Prinzip "Berechtigung verweigert für Fenstertyp 2002" beim Aufruf von
%Vor%Hat Google den Weg geändert, funktioniert Overlay? Irgendeine Idee, wie man meinen Text als Overlay auf den Bildschirm in Android 8 (Oreo), API 26 bekommt? Danke für deine Ideen!
Dies ist das Fehlerprotokoll:
%Vor%In meinem Manifest habe ich:
%Vor%Dies ist meine MainActivity:
%Vor%Und das ist die DrawView:
%Vor%Laut der Dokumentation zu Verhaltensänderungen für Android 8.0 für Apps Targeting auf Android 8.0:
%Vor%Apps, die die Berechtigung SYSTEM_ALERT_WINDOW verwenden, können die folgenden Fenstertypen nicht mehr verwenden, um Warnfenster über anderen Apps und Systemfenstern anzuzeigen:
Stattdessen müssen Apps einen neuen Fenstertyp namens
TYPE_APPLICATION_OVERLAY
verwenden.
Ihre App könnte also auf eine niedrigere Version abzielen. In diesem Fall wird Ihr Benachrichtigungsfenster ...
angezeigterscheint immer unter den Fenstern, die den TYPE_APPLICATION_OVERLAY-Fenstertyp verwenden. Wenn eine App auf Android 8.0 (API-Stufe 26) abzielt, verwendet die App den TYPE_APPLICATION_OVERLAY-Fenstertyp, um Warnfenster anzuzeigen.
(aus der gleichen Quelle zitiert)
Android Oreo (und zukünftige Versionen) erlauben die Verwendung von WindowManager.LayoutParams.TYPE_PHONE nicht, da es veraltet ist, stattdessen WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
zu verwenden %Vor%Tags und Links android permissions android-8.0-oreo