2011-06-27 12 views
11

Myślę, że wypróbowałem wszystkie rozwiązania znalezione w Internecie, ale nikt nie działał - nie wymuszam zamknięcia, ale nic nie pojawia się na komputerze stacjonarnym. Teraz mam to:Utwórz skrót do dowolnej aplikacji na komputerze stacjonarnym

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() jest taka:

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; 
} 

A w manifeście:

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

Czego mi brakuje? Dzięki.

+0

Dla porównania, edycji pytanie wystarczy uderzać go na pierwszą stronę ponownie. –

+1

Czy możesz podać pełny kod źródłowy? – Nirav

Odpowiedz

15

Rozwiązany. Wystarczy zmienić w manifeście:

to:

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

do tego:

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

tylko 'używa' ¬¬

+0

Twój kod wydaje się tworzyć skrót na pulpicie na wykonanie programu! Czy istnieje sposób, w jaki mogę utworzyć ikonę na pulpicie podczas instalacji aplikacji przed jej uruchomieniem? –

+0

Nie, nie możesz, ponieważ kod Java musi znajdować się w głównym działaniu, które jest uruchamiane po uruchomieniu aplikacji –

Powiązane problemy