2014-03-18 53 views
5

幾個月來,由於用戶投訴我們的應用程序的主要部分無法與之交互,因此我們的應用程序已經越來越差。我們的應用程序使用支持庫和一個操作欄。根據這些用戶,操作欄是應用程序響應用戶觸摸的唯一部分。操作欄下面的所有內容(除了Android主頁,後退等按鈕)都沒有響應。Lux的SYSTEM_ALERT_WINDOW權限使我們的應用程序部分無法運行

在我們嘗試重現問題的最後,我們終於發現安裝應用程序Lux會導致此問題。當安裝Lux時,唯一響應用戶觸摸的是操作欄。

望着力士的權限,我看到:

其他應用程序UI
在其他應用

其中,尋找它之後,相當於這個Android權限:

android.permission.SYSTEM_ALERT_WINDOW 

用戶已經確認Lux應用程序是導致問題的原因。

我的問題是,如何解決這個問題而不告訴用戶卸載Lux?這是一個android bug,還是我們的?有沒有什麼我們可以做,讓我們的應用程序沒有反應,但不是其他人?

我的下一步我想是發送一封電子郵件給Lux團隊,看看他們是否知道可能導致這種情況(與我們自己的調查一起)。我的直覺是也向Android團隊發送電子郵件,因爲在我看來,沒有外部應用程序應該能夠如此戲劇性地影響另一個應用程序的行爲。

+0

出於好奇,有什麼事情沒有發生?你沒有得到觸摸事件嗎? –

+0

@GabeSechan,我剛剛在我們的活動中覆蓋了'onTouchEvent()',我可以確認這個斷點正在被觸發(我們正在接觸觸摸事件,但它們並沒有傳播到子視圖)。我現在正在爲'onInterceptTouchEvent'測試一個自定義視圖對象。 –

+0

您是否曾經確定過勒克斯爲此做了什麼?我測試了一些應用程序,其中大部分都能正常工作。我發現的唯一突破性應用程序是Lux和GridWichterle(https://play.google.com/store/apps/details?id=eu.inmite.android.gridwichterle)。 –

回答

6

您是否有機會與android:filterTouchesWhenObscured屬性一起使用視圖?設置爲true時,我認爲這可能會導致您的問題。

例如,在XML,它看起來像:

<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"/> 

取出filterTouchesWhenObscured線,它應該是罰款。

+0

這是它。這樣一個隨機和奇怪的錯誤。它看起來像操作系統註冊勒克斯覆蓋作爲另一個視圖,並因此過濾器觸及嵌入在我們的抽屜佈局(這是該物業所在的位置)的意見。 –

相關問題