2011-05-06 69 views
20

我對任何已發現並希望創建自己的Android應用更新程序都不滿意,但我無法確定如何實現實際的鎖定。如何實現Android的應用鎖?如何在android中實現應用程序更衣室?

這裏有兩個問題:

  1. 檢測的意圖,通常從啓動調用startActivity(),或從廣告啓動市場的應用程序(我不是在談論廣播意圖 - 我需要處理顯式的活動意圖)。

    • 的更衣室應用我所看到的所有的權限有「讀取系統日誌文件」和/或「檢索運行的應用程序」,這意味着他們可能會使用輪詢來尋找應用程序啓動。我想我可以做到這一點,但如果可能的話,我希望找到更好的解決方案。
  2. 防止鎖定的應用程序處理意圖。我不希望允許鎖定的應用程序一直運行,直到輸入密碼爲止,因爲無法分辨啓動時可能執行的操作。

    • 當我運行當前應用程序更衣室,logcat中顯示「ActivityManager:啓動活動」的意圖的鎖定應用程序的意圖的應用在更衣室之間的第一,還是那句話,什麼也沒有(用10-20ms分離)。如果我輸入正確的密碼,那麼我會看到「ActivityManager:moveTaskToBack」。
    • 我已經試驗了一個測試應用程序,它演示瞭如果應用程序被鎖定並且我沒有輸入正確的密碼,那麼使用我當前的應用程序鎖定器將不會調用任何Activity回調。所以它似乎阻止了應用程序的啓動(但我不知道如何)。
    • 我可以使用ActivityManager.killBackgroundProcesses()來停止應用程序,但我不能保證應用程序在被「殺死」時還沒有開始運行。
    • 我可能能夠使用PackageManager.setApplicationEnabledSetting()來阻止應用程序被實例化,但我不認爲這會照顧已經運行的應用程序(不應允許它處理新的Intents或來到前臺)。我可能可以使用killBackgroundProcesses()來停止所有正在運行的鎖定進程,以便它們必須重新實例化。但我不喜歡這種方法,因爲其他應用程序可能會混淆Enabled設置並打破鎖定。
    • 理想情況下,系統會發送每個意向到我的應用程序進行檢查,並允許我停下來或讓它通過,但我敢肯定,這是不可能的(至少,不是明確的意圖,從啓動器啓動活動)。

有誰知道如何應用儲物櫃應用程序實現,或者對如何可以做什麼好主意?

+5

「應用程序儲物櫃」使用的技術是安全漏洞。我試圖讓他們關閉。 – CommonsWare 2011-05-06 06:48:21

+0

隱藏隱藏活動的啓動器以及意圖級鎖定機制如何? – aProgrammer 2012-12-03 07:39:49

+0

@CommonsWare應用程序儲物櫃應用程序中的任何引用? – nida 2015-01-16 04:33:18

回答

相關問題