2013-01-31 106 views
2

我正在開發簡單的主屏幕應用程序。所以,當我按Home鍵我可以 選擇原生和我的主屏幕應用程序。問題是:如果我將我的應用程序設置爲默認 主屏幕應用程序,當我重新啓動手機時,我無法進入本機主屏幕應用程序 ,因爲它從未開始,所以我的應用程序站在頂端的堆棧上。如何在我重新啓動手機時輸入 本機主屏幕應用程序,如果我的默認主屏幕應用程序? 我有想法: 在啓動時,我可以檢查調用意圖 - 如果它包含Home類別,我會調用本地主屏幕應用程序。事情是這樣的:主屏幕組件名稱

Intent creatingIntent = getIntent(); 
if (creatingIntent.hasCategory(Intent.CATEGORY_HOME)) 
{ 
    creatingIntent.setPackage("com.android.launcher"); 
    creatingIntent.setComponent(new ComponentName 
    ("com.android.launcher", 
    "com.android.launcher2.Launcher")); 
    startActivity(creatingIntent); 
    finish(); 
} 

但問題是我不知道我能得到本地主屏幕應用組件名稱,可有人能幫助?

+0

嗯明確違約是唯一的解決辦法..當我已經安裝了兩個發射器不清除默認設定從不要求生根粉等發射你怎麼設置你的發射器爲默認? – baboo

+0

[清除默認](http://stackoverflow.com/questions/10831870/clear-default-android-application) –

+0

用戶在按home按鈕時設置它。 – prowebphoneapp

回答

1

家庭應用程序(=發射器)的目標是取代本地發射器,這是奇怪的迫使2發射器的同居。但是,如果你成功地做了這樣的事情,當你按下主頁按鈕時,它也會啓動Native啓動器。

要回答你的問題,本地啓動程序取決於目標設備。例如:三星不使用相同的啓動器比谷歌,所以組件的名稱將不同。

您是否嘗試過在啓動時啓動您的應用程序的廣播接收器?因此,您不必將應用程序設置爲默認的家庭應用程序,因此您在按主屏幕按鈕時可以節省選擇空間。但是,如果用戶選擇您的應用程序作爲默認應用程序,這不是一個解決方案。

也許你可以看看這裏How to use customized screen instead of default start screen in Android?

+0

1.我知道本機啓動程序取決於設備類型,但我想有一種方法可以通過編程方式獲取其組件名稱。 2.如果用戶沒有將我的應用程序設置爲默認,那麼只要他再次按下它,相同的對話將彈出我們,因此這是不實用的。 – prowebphoneapp

+0

@prowebphoneapp:「我想有一種方法可以以編程方式獲取組件名稱」 - 不可靠。 – CommonsWare

+0

是的,它確實沒有道理。正如CommonsWare所說,它不確定。你可以在packageManager(管理組件)附近尋找,[這裏](http://stackoverflow.com/a/5097838/1720391) – Goo