2013-08-20 16 views
24

Desidero creare l'icona di collegamento/avvio della mia app sulla schermata iniziale non appena installo la mia app (anche prima che la avvii). È possibile? Come potrei farlo?Come posso aggiungere il collegamento dell'applicazione alla schermata iniziale all'installazione dell'applicazione?

+0

Android non aggiunge automaticamente un collegamento a un'applicazione automaticamente per impostazione predefinita al momento dell'installazione? – Renan

+2

@ Renan - Un collegamento è aggiunto alla lista delle app, ma non alla schermata principale. –

+1

sì. l'avvio dell'app viene aggiunto all'elenco delle app ma non in homescreen. ma le app scaricate dal Play Store in genere creano le scorciatoie in homescreen. –

risposta

10

NOTA: Questa risposta è ora sbagliata. Si veda, ad esempio, Robin's answer per un modo per farlo.


Per quanto ne so, un'app non può forzarsi sulla schermata principale. Viene aggiunto all'elenco delle app che l'app di avvio mantiene, ma la schermata principale è generalmente sotto il controllo dell'utente. Dare alle app la possibilità di ingombrare la schermata iniziale sarebbe un invito aperto per abuso.

+11

Grazie per il vostro aiuto. Ma trovo alcune applicazioni, che installo dal Play Store, creano automaticamente le scorciatoie. –

+2

Lo capisco anche in tutti i miei dispositivi. Ho appena comprato un nuovo telefono, ho scaricato di nuovo tutto da Google Play ... Le icone hanno smesso di apparire nei miei schermi quando non c'era più spazio per loro. – Renan

+8

nel Play Store, abbiamo un'impostazione "auto aggiungi scorciatoie su homescreen". –

40

Dal ICS, si può fare in questo modo:

public void createShortCut(){ 
    Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); 
    shortcutintent.putExtra("duplicate", false); 
    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcutname)); 
    Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon); 
    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); 
    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), EnterActivity.class)); 
    sendBroadcast(shortcutintent); 
} 

prega di fare riferimento anche al codice sorgente del programma di avvio a: this link

Edit: Se qualcuno avrebbe perso la lettura in modo da aggiungere un commento seguente riga.

Questo richiede il permesso "com.android.launcher.permission.INSTALL_SHORTCUT"

+1

da dove attivare questa opzione? Voglio creare un collegamento EVEN PRIMA INIZIA LA MIA APP, ovvero appena lo installo –

+3

Puoi crearlo dalla tua app o crearlo con un'altra app in esecuzione Non ci sono altri modi, PlayStore è in grado di farlo perché ha installato la tua app. in questo modo: se c'è già una tua app in esecuzione sul dispositivo e sta ascoltando l'evento di trasmissione apk installato, allora potrebbe eseguire questa azione di scelta rapida per te, ma questo non sarà il caso normale, tu non posso aspettarti di avere tale funzione su ogni dispositivo. – Robin

+0

grazie per l'aiuto Robin –

12

Hai dimenticato di aggiungere le autorizzazioni:

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

Grande tutorial qui: http://androidforbegineers.blogspot.in/2014/01/android-home-screen-shortcut.html#!

+0

Non me lo sono dimenticato. questo non costringe l'app a creare il collegamento all'installazione: P –

5

Se si installa l'applicazione, né l'applicazione, né i servizi o altri processi sono attivi! Android vuole che l'utente faccia il primo passo per "aprire" l'applicazione. Non è possibile installare una scelta rapida direttamente! Questa è la risposta. Avviso: sulla maggior parte dei dispositivi il programma di avvio creerà un collegamento per l'applicazione stessa.

È possibile installare scorciatoie in runtime dopo che l'utente ha in qualche modo avviato l'app almeno una volta? : (vedere la risposta di Robins).

C'è una soluzione? Forse, ma non buono.

Aggiornamento, un altro suggerimento: se si dispone già di un'applicazione sul dispositivo dell'utente. Ad esempio, se la tua seconda app che viene installata è la chiave per "going pro" o qualcosa del genere), in realtà puoi avviare la seconda applicazione dal primo, senza che l'utente abbia avviato la seconda app in assoluto (e aggiungere un collegamento) .

+0

@downvoter, per favore aggiungi un commento se rispondi a qualcuno, altrimenti un downvote è inutile.La mia risposta è l'unica totalmente corretta nel contesto della domanda. – JacksOnF1re

0
  1. Creare la funzione di chiamare intento di collegamento:

    private void criarAtalho() { 
        Intent shortcutIntent = new Intent(getApplicationContext(), SplashScreen.class); 
        shortcutIntent.setAction(Intent.ACTION_MAIN); 
        Intent addIntent = new Intent(); 
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "nomeDaApp"); 
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.mipmap.ic_launcher)); 
    
        addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
        addIntent.putExtra("duplicate", false); //may it's already there so don't duplicate 
        getApplicationContext().sendBroadcast(addIntent); 
    } 
    
  2. scrittura sul OnCreat la chiamata della funzione:

    if(!getSharedPreferences("APP_PREFERENCE", Activity.MODE_PRIVATE).getBoolean("IS_ICON_CREATED", false)){ 
        criarAtalho(); 
        getSharedPreferences("APP_PREFERENCE", Activity.MODE_PRIVATE).edit().putBoolean("IS_ICON_CREATED", true).commit(); 
    } 
    
  3. impostare le autorizzazioni per manifestare:

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

In primo luogo, aggiungere l'autorizzazione per l'aggiunta di scelta rapida per manifestare:

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

Poi, chiamare la funzione qui sotto.

public void createShortcut(){ 
    Intent intentShortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); 
    intentShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); 
    Parcelable appicon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher); 
    intentShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, appicon); 
    intentShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), MainActivity.class)); 
    intentShortcut.putExtra("duplicate", false); 
    sendBroadcast(intentShortcut); 
} 
Problemi correlati