2014-03-18 5 views
5

Seit ein paar Monaten bekommen unsere Anwendung schlechte Kritiken aufgrund einer Beschwerde von Benutzern, dass der Hauptteil unserer Anwendung nicht interagiert werden kann. Unsere App verwendet die Support-Bibliotheken und verfügt über eine Aktionsleiste. Laut diesen Benutzern ist die Aktionsleiste der einzige Teil der App, der auf Benutzerberührung reagiert. Alles unterhalb der Aktionsleiste (außer den Androiden Home, Back usw.) reagiert nicht.SYSTEM_ALERT_WINDOW Erlaubnis von Lux macht Teile unserer App funktionsunfähig

Nach einer Menge Probleme auf unserem Ende versucht, das Problem zu reproduzieren, fanden wir schließlich, dass die Installation der App Lux dieses Verhalten verursacht. Wenn Lux installiert ist, reagiert nur der Benutzer auf die Aktionsleiste.

Mit Blick auf Lux Berechtigungen, sehe ich diesen:

anderen Anwendungs ​​UI
Unentschieden über andere Anwendungen

Welche, nachdem sie nach oben, bis dieser Android Erlaubnis entspricht:

android.permission.SYSTEM_ALERT_WINDOW 

Benutzer haben bereits bestätigt dass die Lux-Anwendung das Problem verursacht.

Meine Frage ist, wie kann dies behoben werden, ohne den Benutzern zu sagen, Lux zu deinstallieren? Ist das ein Android-Virus oder unser? Können wir etwas tun, das unsere App nicht mehr anspricht, andere jedoch nicht?

Mein nächster Schritt würde ich sein, eine E-Mail an das Lux-Team zu senden, um zu sehen, ob sie wissen, was das verursachen könnte (neben unserer eigenen Untersuchung). Mein Instinkt ist es auch, das Android-Team per E-Mail zu erreichen, da meiner Meinung nach keine externe Anwendung das Verhalten eines anderen so dramatisch beeinflussen kann.

+0

Aus Neugier, was passiert nicht? Erhalten Sie keine Berührungsereignisse? –

+0

@GabeSchan, Ich habe gerade das 'onTouchEvent()' in unserer Aktivität übersteuert, und ich kann bestätigen, dass der Breakpoint getroffen wird (wir erhalten Berührungsereignisse, aber sie verbreiten sich nicht bis zu den Kinderansichten). Ich teste jetzt ein benutzerdefiniertes Ansichtsobjekt für "onInterceptTouchEvent". –

+0

Haben Sie jemals herausgefunden, was Lux dafür unternimmt? Ich habe eine Handvoll Apps getestet und die meisten funktionieren gut. Die einzigen brechenden Apps, die ich gefunden habe, waren Lux und GridWichterle (https://play.google.com/store/apps/details?id=eu.inmite.android.gridwichterle). –

Antwort

6

Haben Sie zufällig eine Ansicht mit der android:filterTouchesWhenObscured Eigenschaft? Wenn diese Option auf "true" gesetzt ist, könnte dies Ihr Problem verursachen.

Zum Beispiel in der XML, würde es wie folgt aussehen:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout" 
    android:filterTouchesWhenObscured="true" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"/> 

Entfernen Sie die filterTouchesWhenObscured Linie und es sollte in Ordnung sein.

+0

DAS WAR ES. Solch ein zufälliger und seltsamer Fehler. Es sieht so aus, als ob das Betriebssystem das Lux-Overlay als eine andere Ansicht registriert und dadurch die Filter aus den Ansichten heraussucht, die in unserem Schubladenlayout eingebettet sind (wo sich diese Eigenschaft befand). –

Verwandte Themen