2010-07-10 7 views
12

Ciao, sono nuovo in questa programmazione Android.Come aggiungere programmaticamente le scorciatoie dell'applicazione in Android

Ho bisogno di aggiungere la mia applicazione alla schermata iniziale come scorciatoia programmatica.

Si prega di dare l'idea per questo. Se possibile, spiegami come gestire le scorciatoie esistenti (eliminazione e aggiunta di altre scorciatoie)

+0

non credo che le API espongono tale funzionalità. Per impostazione predefinita, viene visualizzata un'icona di app nella finestra di dialogo a comparsa. –

risposta

9

Ho letto un articolo che può aiutarti ad aggiungere l'applicazione Scorciatoia programmaticamente sulla schermata principale.

È possibile fare riferimento allo example.

È inoltre possibile fare riferimento alla domanda StackOverflow relativa al collegamento here.

+0

potrebbero esserci altri link che ne parlano, come questo: http://code.google.com/p/apps-for-android/source/browse/#git%2FAnyCut e questo: https: // groups. google.com/forum/?fromgroups=#!topic/android-developers/B9n6PjtTKic –

5

Chiama questo metodo nel metodo onCreate() del tuo primo schermo. Assicurarsi inoltre per controllare che applicazione è in esecuzione prima volta con SharedPreferences come ho fatto:

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

Ho speso un sacco di tempo a cercare soluzioni diverse da StackOverflow, ma la maggior parte di loro sono inutili, perché stanno iniziando nuove istanze di attività. Ho bisogno di una scorciatoia che funzioni esattamente come quella nella lista delle app o quella installata automaticamente da Google Play (avvia attività o porta Attività già avviata).

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

E non dimenticare di aggiornare il vostro manifesto:

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

possiamo fare questa cosa tramite javascript? un'idea formica? –

Problemi correlati