ich diese Ausnahme immer empfangen, wenn ich versuche, eine systemweite Overlay erstellen Windowmanager und die entsprechende Erlaubnis verwendet:Unable Fenster hinzuzufügen - die angegebene Fenstertyp nicht gültig ist
Unable to add window [email protected] -- the specified window type is not valid
My-Code (run aus meiner Tätigkeit onCreate):
if(Build.VERSION.SDK_INT >= 23) {
/** check if we already have permission to draw over other apps */
if (!Settings.canDrawOverlays(this)) {
/** if not construct intent to request permission */
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
/** request permission via start activity for result */
startActivityForResult(intent, CHECK_OVERLAY_PERMISSION_REQUEST_CODE);
}
}
if(Build.VERSION.SDK_INT >=23 && Settings.canDrawOverlays(this)) {
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
PixelFormat.TRANSLUCENT
);
View overlay = ((LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE)).inflate(R.layout.overlay_playback_controls, null);
//overlay.setOnClickListener(this);
windowManager.addView(overlay, layoutParams);
}
Und wenn nötig, heren die entsprechenden XML-Layout-Datei:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test!!!"
/>
</LinearLayout>
Ich habe bereits alle Hinweise von diesem Posten (einschließlich der verknüpften eins) versucht, aber haben noch keine Ahnung, was das Problem ist: Unable to add window [email protected] -- permission denied for this window type
Seltsam. Mit nur einer geringfügigen Änderung (Hinzufügen eines endgültigen statischen int CHECK_OVERLAY_PERMISSION_REQUEST_CODE) konnte ich dies ohne Probleme ausführen lassen. In welcher Version von Android und/oder welchem Gerät/Emulator verwendest du das? Außerdem, welche sdk-Version targetieren und kompilieren Sie gegen? –
Noch interessanter, dass Sie es geschafft haben, es laufen zu lassen.Ich habe einfach die Konstante int beim Kopieren des Codes vergessen. Aber ich konnte es zum Laufen bringen. Ich habe mich auf Berechtigungen konzentriert, weil ich gelesen habe, dass dieser Fehler dadurch erzeugt wird, aber ich habe einfach vergessen, eine "Höhe" für das Layout zu implementieren, so dass es nicht ausgeführt wird, weil eine Ansicht ohne Breiten- und Höhenparameter nicht möglich ist. –