2010-07-10 12 views
12

Witam Jestem nowy w tym programie Android.Jak programowo dodawać skróty do aplikacji w Androidzie

Potrzebuję dodać moją aplikację do ekranu głównego jako programowalny skrót.

Proszę, wpadnij na pomysł. Jeśli to możliwe, proszę powiedz mi, jak zarządzać istniejącymi skrótami (usuwanie i dodawanie kolejnych skrótów).

+0

Nie sądzę API narazić tę funkcjonalność. Domyślnie pojawia się ikona aplikacji w oknie dialogowym. –

Odpowiedz

9

Przeczytałem artykuł, który może pomóc w dodawaniu aplikacji Skrót programowo na ekranie głównym.

Możesz polecić example.

Możesz również odnieść się do pytania stackoverflow związanego ze skrótem here.

+0

mogą istnieć inne linki, które mówią o tym, takie jak to: http://code.google.com/p/apps-for-android/source/browse/#git%2FAnyCut i to: https: // groups. google.com/forum/?fromgroups=#!topic/android-developers/B9n6PjtTKic –

5

Wywołanie tej metody w pierwszej metody onCreate() na ekranie. Należy również upewnić się aby sprawdzić, czy aplikacja jest uruchomiona po raz pierwszy za pomocą SharedPreferences jakbym zrobił:

private void addShortcut() { 
    //Adding shortcut for MainActivity on Home screen 
    Intent shortcutIntent = new Intent(getApplicationContext(),MainActivity.class); 

    shortcutIntent.setAction(Intent.ACTION_MAIN); 

    Intent addIntent = new Intent(); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, this.getResources().getString(R.string.app_name)); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
         R.drawable.ic_launcher)); 

    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(addIntent); 
} 

    // TO check app is installed first time. 
    SharedPreferences prefs = getSharedPreferences("ShortCutPrefs", MODE_PRIVATE); 
    if(!prefs.getBoolean("isFirstTime", false)){ 
     addShortcut(); 
     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putBoolean("isFirstTime", true); 
     editor.commit(); 
    } 
4

Spędziłem sporo czasu na próbowanie różnych rozwiązań z stackoverflow, ale większość z nich są bezużyteczne, ponieważ zaczynają nowe instancje działania. Potrzebuję skrótu, który działa dokładnie tak, jak ten na liście aplikacji lub ten, który jest automatycznie instalowany przez Google Play (rozpocznij aktywność lub przenieś już rozpoczętą aktywność do przodu).

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     //Save the flag to SharedPreferences to prevent duplicated shortcuts 
     if (!settings.isShortcutAdded()) { 
      addShortcut(); 
      settings.setShortcutAdded(true); 
     } 
    } 

    private void addShortcut() { 
     Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class); 
     shortcutIntent.setAction(Intent.ACTION_MAIN); 
     shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
     int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT; 
     shortcutIntent.addFlags(flags); 

     Intent addIntent = new Intent(); 
     addIntent.putExtra("duplicate", false); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_name)); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource 
       .fromContext(getApplicationContext(), R.drawable.ic_launcher)); 
     addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
     getApplicationContext().sendBroadcast(addIntent); 
    } 

I nie zapomnij, aby zaktualizować manifest:

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

czy możemy zrobić to poprzez javascript? pomysł na mrówkę? –

Powiązane problemy