2015-01-13 23 views
5

似乎是目前的方式來排除應用程序從最近的應用程序在Android L列表已損壞。我們的應用程序使用android:excludeFromRecents,它工作得很好。除非我們的應用程序是在設備重新啓動時啓動的第一個應用程序。android:excludeFromRecents是否在Android L上的設備上啓動的第一個應用程序被破壞?

這是它的外觀時,我們的應用程序退出的設備上的第一個應用程序: InBrowser, with android:excludeFromRecents, started as the first app on device

這裏是它的外觀,如果我們先啓動相機(或任何其他應用程序),那麼我們的應用程序和退出兩個: Camera is started first, then InBrowser. Working as expected.

簡單的說:如果有一個Android的應用程序:excludeFromRecents啓動的第一個應用程序在設備上,指令機器人:excludeFromRecents不工作。如果另一個應用程序在android:excludeFromRecents-app之前啓動,它將按預期工作。

這是一個非常奇怪的邊緣情況下的錯誤還是我失去了一些東西很明顯這裏?

我們建立了一個非常隱私謹慎的網頁瀏覽器(http://inbrowserapp.com),所以我們不能有從顯示一旦應用程序被關閉的應用程序的任何屏幕截圖。但是這也會影響銀行應用程序,密碼管理器等,因爲如果應用程序是重新啓動後首先啓動的應用程序,則會對敏感信息進行截圖。

也許我們可以去的路線和隱藏與當用戶退出在Android L.但它看起來似乎是越野車在這裏一個空白視圖敏感信息?

+0

這肯定似乎很奇怪。 (https://code.google.com/p/android/issues/detail?id=94507)是在它前幾天日提交的問題 - 不知道這是從您的組人。您可以使用您看到的內容來擴充該問題報告,因爲自從您的應用程序可用後,Google工程師應該可以更輕鬆地進行復制。 – CommonsWare

+0

謝謝@CommonsWare,我會這麼做! (不是,不是來自我們的團隊 - 但希望谷歌工程師會注意到這個問題)。 – Tommie

+0

這是在5.0中工作,但不在5.0.1中。我不會爲什麼 –

回答

3

我很高興地說,這是固定的爲Android 5.1。只需在運行5.1的設備上進行確認即可。

所以對我們來說,正確的解決方案是用getWindow()。addFlags(WindowManager.LayoutParams.FLAG_SECURE)來拒絕屏幕截圖。對於使用SDK版本21的棒棒糖,任何低於或高於該值的應該都可以。

+0

我不知道爲什麼這是在5.0中工作,但不在5.0.1中。請解釋 –

+0

@Ajit對我們來說,只有targetSdkVersion 21受到了影響。 – Tommie

1

通過設置此標誌,您至少可以阻止最近的屏幕截圖: getWindow()。addFlags(WindowManager.LayoutParams.FLAG_SECURE);

但它仍然是不應該使人們釋放一個錯誤..

+0

我現在要批准這個作爲正確的答案。 我們決定做上運行l所有設備FLAG_SECURE直到谷歌推出了Android的破損修復:excludeFromRecents。 – Tommie

相關問題