2012-08-05 78 views
6

我希望能夠在設備鎖定密碼時啓動不屬於我的應用程序的活動。如果甚至有可能,我怎麼能這樣做?在鎖定手機時啓動外部活動

注:我深知把getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);我的活動onCreate內。但是,這不起作用,因爲我沒有開始我自己的活動,而是第三方活動,它不在我的應用程序之列。

+0

爲什麼你需要這樣做? – 2012-08-08 01:17:50

+0

是否要解鎖手機並顯示該活動,或只是在後臺啓動它,並等待用戶解鎖手機? – Erol 2012-08-08 03:21:24

+0

手機將保持鎖定狀態,因爲它受密碼保護。但是我想在前臺展開活動(在鎖屏前) – Jakar 2012-08-08 21:10:28

回答

1

,如果你正在嘗試啓動任何它不會工作第三方應用程序鎖定屏幕上。正如你自己所觀察到的,你需要設置窗口標誌以確保活動在鎖定屏幕上啓動,但無法確保來自其他第三方應用的活動也設置相同的標誌。

如果您正在構建一個功能包,其中每個功能只是一個不同的應用程序,那麼您將必須確保這些功能的所有入口點都設置此窗口標誌。最好的辦法是聲明一個BaseActivity,它在創建時設置適當的標誌,並讓所有功能開發團隊使用它作爲入口點的基類。

1

覆蓋功能

public void onAttachedToWindow() { 

    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

這將解鎖後,把你的活動可見。

+0

如果我沒有弄錯,這會把我的活動帶到前臺,我已經解決了這個問題。請參閱我的問題中的**注**。我需要在第三方應用上啓動活動並將其帶到前臺(在鎖屏前)。 – Jakar 2012-08-10 05:16:59

1

只有當實際的開發人員通過覆蓋您嘗試從應用程序中打開的活動中的onAttachedToWindow()方法編寫代碼時,纔有可能。

如果沒有,那麼,抱歉地說,但你沒有選擇,做你正在嘗試做的(至於最近的API去)

+0

downvoting的任何原因? – 2012-08-17 14:15:22