it-swarm.com.de

Wie kann ich bei der Installation der App die Verknüpfung meiner Anwendung zum Startbildschirm hinzufügen?

Ich möchte das Verknüpfungs-/Startprogramm-Symbol meiner App auf dem Startbildschirm erstellen, sobald ich meine App installiert habe (noch bevor ich sie starte). Ist das möglich? Wie kann ich das machen?

28
S P

HINWEIS: Diese Antwort ist jetzt falsch. Siehe zum Beispiel Robins Antwort für einen Weg, dies zu tun.


Soweit ich weiß, kann sich eine App nicht auf den Startbildschirm zwingen. Sie wird der App-Liste hinzugefügt, die von der Launcher-App verwaltet wird. Der Startbildschirm wird jedoch normalerweise vom Benutzer gesteuert. Wenn Sie Apps die Möglichkeit geben, den Startbildschirm durcheinander zu bringen, wäre dies eine offene Einladung zum Missbrauch.

12
Ted Hopp

Seit ICS können Sie folgendes tun:

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

Bitte beachten Sie auch den Quellcode des Launchers unter: diesem Link

Bearbeiten: Wenn jemand das Lesen des Kommentars vermissen würde, fügen Sie die folgende Zeile hinzu.

Dies erfordert eine "com.Android.launcher.permission.INSTALL_SHORTCUT"-Berechtigung

44
Robin

Sie haben vergessen, Berechtigungen hinzuzufügen:

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

Großartiges Tutorial hier: http://androidforbegineers.blogspot.in/2014/01/Android-home-screen-shortcut.html# !

13
DoronK

Wenn Sie Ihre Anwendung installieren, sind weder Ihre Anwendung noch Dienste oder andere Prozesse aktiv! Android möchte, dass der Benutzer den ersten Schritt beim "Öffnen" der Anwendung macht. Sie können keine Verknüpfung direkt installieren! Das ist die Antwort. Hinweis: Auf den meisten Geräten erstellt der Launcher eine Verknüpfung für Ihre Anwendung selbst.

Können Sie Verknüpfungen zur Laufzeit installieren, nachdem der Benutzer Ihre App mindestens einmal gestartet hat? : ja (siehe Antwort von Robins).

Gibt es eine Problemumgehung? Vielleicht, aber kein guter. 

Update , Noch ein Hinweis: Wenn Sie bereits eine Anwendung auf dem Gerät des Benutzers haben. (Wenn zum Beispiel Ihre zweite installierte App der Schlüssel für "Going Pro" oder etwas ist), können Sie die zweite Anwendung tatsächlich von der ersten starten, ohne dass der Benutzer die zweite App jemals gestartet hat (und eine Verknüpfung hinzufügen). .

5
JacksOnF1re
  1. Funktion erstellen, um die Absicht der Verknüpfung aufzurufen:

    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. schreiben Sie auf OnCreat den Aufruf der Funktion:

    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. legen Sie die Berechtigungen für Manifest fest:

    <uses-permission
        Android:name="com.Android.launcher.permission.INSTALL_SHORTCUT" />
    
2
Pedro Paulo

Fügen Sie zunächst die Berechtigung zum Hinzufügen einer Verknüpfung zum Manifest hinzu:

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

Dann rufen Sie die Funktion unten auf.

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);
}
1
Aby Olangattu