2010-07-10 12 views
12

Hallo, ich bin neu in dieser Android-Programmierung.Wie programmatische Anwendungsverknüpfungen in Android hinzufügen

Ich muss meine Anwendung zum Startbildschirm als Abkürzungsprogramm hinzufügen.

Bitte geben Sie die Idee dafür. Wenn möglich, bitte sagen Sie mir, wie die bestehenden Verknüpfungen verwalten (Löschen und Hinzufügen von etwas mehr Shortcuts)

+0

Ich glaube nicht die APIs, die Funktionalität aus. Im Pull-Up-Dialogfeld wird standardmäßig ein App-Symbol angezeigt. –

Antwort

9

Ich habe einen Artikel gelesen, die Ihnen in dem Hinzufügen Anwendung Shortcut programmatisch auf dem Startbildschirm helfen kann.

Sie können die example verweisen.

Sie können auch die Stackoverflow Frage beziehen sich im Zusammenhang here abzukürzen.

+0

könnte es weitere Links sein, die darüber nach, wie diese sprechen: http://code.google.com/p/apps-for-android/source/browse/#git%2FAnyCut und diese: https: // Gruppen. google.com/forum/?fromgroups=#!topic/android-developers/B9n6PjtTKic –

5

Rufen Sie diese Methode in der OnCreate() - Methode auf dem ersten Bildschirm auf. Auch sicherzustellen, dass App prüfen ersten Mal ausgeführt wird SharedPreferences mit, wie ich tat:

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

ich ziemlich viel Zeit damit verbracht haben auf verschiedenen Lösungen von Stackoverflow versucht, aber die meisten von ihnen sind nutzlos, weil Sie starten neue Instanzen von Aktivität. Ich brauche Abkürzung, die genau wie die in App-Liste arbeitet oder einen automatisch von Google Play installiert (Aktivität beginnen oder bereits begonnen Aktivität nach vorne bringen).

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

Und vergessen Sie nicht, Ihr Manifest zu aktualisieren:

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

können wir tun, um dieses Ding durch Javascript? Ameisen-Idee? –

Verwandte Themen