2012-10-20 40 views
1

平臺:華碩的Nexus 7,以使其成爲默認的HOME/LAUNCHER意圖運行傑利貝恩如何從我的活動中明確啓動股票啓動器?


我創建了一個自助服務應用程序。我需要能夠通過一個祕密的代碼來獲得它的股票android啓動器,以便進行服務和維護。

我搜遍了所有,並找不到一個很好,簡潔的答案。我想出的最好的辦法是創建一個意向選擇器(Intent.createChooser(Intent i, String title)),並在我的啓動器和股票啓動器之間進行選擇。這是好的,但真的是一種解決方法。

我已經試過:

PackageManager pm = this.getPackageManager(); 

try { 
    Intent i = pm.getLaunchIntentForPackage("com.android.launcher"); 
    if (i != null) 
     this.startActivity(i); 
} 
catch (ActivityNotFoundException e) { } 

,我得到空的每次意圖。然而,股票啓動器在我的平板電腦上顯示了一個「com.android.launcher」包。很明顯,我在這裏得到了完全錯誤的東西。

回答

1

步驟#1:在啓動器設置爲主屏幕之前手動運行應用程序所需的文檔。

步驟#2:在第一次運行時,使用resolveActivity()找出默認主屏幕是什麼,並在某個持久數據存儲中保留來自ResovleInfo(例如組件名稱)的相關信息。

步驟#3:使用該數據根據需要從您的自助服務終端應用中的後門調出默認主屏幕。