2012-02-26 68 views
10

當用戶安裝Android應用程序時,會在應用程序菜單中創建啓動器圖標。我與之交談的許多用戶預計,當他們安裝應用程序時,圖標應自動出現在主屏幕(「啓動板」)上。在主屏幕上安裝啓動器圖標

許多應用程序以某種方式實現這一點。我的首選是在安裝時出現一個窗口,詢問用戶「你想添加一個快捷方式嗎?」如果這是不可能的,任何自動添加快捷方式的代碼都會執行。

Android在這裏給出了一堆代碼:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html 暗示將這些代碼(和相關的xml)添加到您的項目中將會有效。但它沒有我想要的效果。看起來提供的代碼是被動的,我需要以某種方式觸發它。

所以我的問題是:

如何觸發快捷的安裝,以及如何確保它只會發生一次,最好由某種「應用程序安裝」事件觸發的?

PS: 一個複雜的因素是我使用PhoneGap構建我的應用程序,這意味着主要活動不是「活動」而是「DroidGap」。

+1

發現通過Android Market安裝的應用會自動安裝啓動器快捷方式,如果您包含INSTALL_SHORTCUT權限。但是直到你發佈你的應用程序,你才能知道:即使從APK下載到你的手機,通過其他方式安裝也無濟於事。 – Wytze 2012-03-16 14:39:26

回答

1

在該示例中,它返回setResult(...)中的intent。我相信你需要運行sendBroadcast(intent)來觸發安裝快捷方式。

+0

黑社會,感謝您的評論。我曾嘗試在App.java(主要活動)和LauncherShortcuts.java本身的不同位置運行sendBroadcast(intent)。沒有結果。 – Wytze 2012-02-27 09:29:57

+0

你是否也在你的'AndroidManifest.xml'中擁有''? – triad 2012-02-27 09:38:35

+0

我也注意到示例代碼不會調用'intent.setAction(Intent.ACTION_CREATE_SHORTCUT)',這也是必需的。 – triad 2012-02-27 09:45:04

0

DroidGap類擴展了Activity,因此您只需從您提供的用於添加快捷方式的鏈接添加代碼即可。

+0

Simon,我嘗試添加鏈接中的代碼。這沒有用。我包括LauncherShortcuts.java和LauncherShortcuts.xml,但是當我安裝我的應用程序時沒有任何反應。當你說「從鏈接添加代碼」時,或許你比我更具體的想法? – Wytze 2012-02-27 09:29:00

4
Intent shortcutIntent = new Intent(getApplicationContext(), HomeScreen.class);  
    shortcutIntent.setAction(Intent.ACTION_MAIN); 

    Intent addIntent = new Intent(); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AIMS ICD"); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.aims)); 
    addIntent.putExtra("duplicate", false); 
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(addIntent); 
相關問題