2010-10-20 55 views
0

我可以動態地設置一個活動的首選/默認的應用程序,這時候我按Home鍵啓動內?如果這是不可能的,我可以至少重置當前的默認值,以便重新選擇窗口重新出現?我試圖通過調用PackageManager.clearPackagePreferredActivities(「com.android.launcher」)來實現後者,但似乎沒有這樣做(我給了我的活動SET_PREFERRED_APPLICATIONS權限)。設置默認主頁的應用程序動態

回答

5

我可以在活動內動態設置首選項/默認應用程序,當我按Home鍵時將啓動該應用程序?

號有這個不公開的API。

如果這是不可能的,我可以至少重置當前的默認值,以便重新選擇窗口重新出現?

僅當您正在實現當前默認的主屏幕時。

我試圖通過調用PackageManager.clearPackagePreferredActivities(「com.android.launcher」)

至於該方法國家,該文檔「應用程序只能清楚自己的軟件包來實現後者( S)。「

1

應用程序只能清除其自己的包(一個或多個)。

這不可能是真的....在App「幼兒鎖」已經想出瞭解決的辦法。我如下測試它:

  1. 安裝幼兒鎖
  2. 開放幼兒鎖
  3. 檢查「作爲默認設置」
  4. 選擇其他應用程序(不幼童鎖)作爲默認
  5. 幼兒開業再次鎖定
  6. 即使我已經選擇另一個應用程序作爲默認,我再次提示選擇默認,這意味着幼兒鎖已清除其他應用程序的用戶定義的默認值
  7. 關閉程序,現在幼兒鎖被默認
  8. 刪除自身如果在幼兒鎖關閉超過一個「家」的應用程序存在(僅第一次)按「家庭」系統會提示您選擇默認的下一次「首頁「應用程序。再次證明該設置可以通過第三方應用刪除

在Android版本之前2。2:

  1. 安裝幼兒鎖
  2. 沒有提示用戶幼兒套鎖本身默認的「家」的應用程序,因此清除了設置
  3. 關閉幼兒鎖,它本身又刪除默認沒有提示

自從這篇文章後,現在可能有些變化......但據我所知,Toddler Lock自租賃API版本1.5開始就一直存在,並一直能夠做到這一點。這並不妨礙我,因爲該應用程序提供了非常棒的功能,但我想知道如何在我的應用程序中完成此操作。

注意:安全性至少會增加,因爲用戶需要第一次選擇「默認應用程序」。即使是第一次在他的應用程序中的開發狀態,使用新的要求,因爲API的版本2.2

+0

你有沒有發現幼兒鎖是如何實現這一點的?我也有類似的要求。 – 2012-01-10 16:35:32

-1

我說這不能像它正在發出的聲音一樣艱難。我一直在努力想辦法自己做到這一點。我知道這個線程是舊的,但由於它仍然是開放的,我會給出我的答案。我不知道我在做什麼(不是真正的程序員),所以我還沒有編寫一個原始的應用程序來做到這一點。無論如何,我已經設法用Tasker App Factory複製預期的效果,並且Home2 Shortcut ...使用Target as Home(另一個mrkt應用程序)可能會比home2實現更好的結果,但我還沒有嘗試過。

基本上,我剛剛創建了一個帶有TskrFactory的shell,其中包含一個彈出窗口,用於保存我的所有主頁啓動器作爲快捷方式(尚未找出使它們可以在運行中進行用戶修改的方法,但應該很容易你好,不是?)。基本上只是一個榮耀的變量/快捷方式...無論選擇哪個啓動器都會變成%var - 一旦它被清除,下一次主新聞會再次提示提示。從技術上講,它是home2,它是默認的家庭。原始,我敢肯定,但是很有效。一個概念證明,如果沒有別的。