2011-06-27 106 views
11

我想我已經嘗試了我在互聯網上找到的所有解決方案,但沒有人工作 - 沒有強制關閉,但桌面上沒有任何顯示。現在,我已經這樣:爲桌面上的任何應用程序創建快捷方式

private void createShortcutOnDesktop(Application app) { 

    Intent shortcutIntent = new Intent(); 
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, app.getIntentShortcut()); 
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, app.getName()); 
    shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.home_button)); 
    shortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    this.sendBroadcast(shortcutIntent); 
    finish(); 

} 

的app.getIntentShortcut()是這樣的:

public Intent getIntentShortcut() 
{  

    Intent i = new Intent(); 
    i.setClassName(packageName, name); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    return i; 
} 

而且在清單:

<permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 

我缺少什麼?謝謝。

+0

作爲參考,編輯你的問題就足以撞起來再次到首頁。您可以請提供 –

+1

,提供完整的源代碼。 – Nirav

回答

15

已解決。就在明顯的改變:

這樣的:

<permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 

這樣:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 

只是一個 '使用' ¬¬

+0

您的代碼似乎產生執行該程序的桌面快捷方式!在運行應用程序之前,我可以在安裝應用程序時創建桌面圖標。 –

+0

不可以,因爲Java代碼必須在啓動應用程序時運行的主要活動內 –

相關問題