Android: Launcher Icon zur Laufzeit ein- und ausschalten

Der Launcher von Android listet alle Apps auf – oder vielmehr die startbaren Komponenten der Apps. Üblicherweise legt ein Entwickler über das Manifest der App statisch fest, welche Komponenten im Launcher auftauchen.

Doch manchmal möchte man zur Laufzeit festlegen, ob ein Start-Icon angezeigt wird oder nicht. Ein Anwendungsfall hierfür kann die einmalige Einrichtung eines Hintergrunddienstes sein. Nach erfolgter Einrichtung soll das Icon aus dem Launcher verschwinden.

Damit eine Activity im Launcher angezeigt wird, muss für sie im Manifest ein Intentfilter deklariert sein:

Die Action MAIN bedeutet, dass die Activity einen Einstiegspunkt in die App darstellt. Die Category LAUNCHER markiert die Activity als Eintrag für den Launcher.

Einen IntentFilter kann man nicht zur Laufzeit einer Activity hinzufügen oder von ihre entfernen bzw. deaktivieren oder aktivieren. Doch man kann die gesamte Activity deaktivieren und aktivieren, nämlich über den PackageManager:

Ist die Activity deaktiviert, lässt sie sich auch über andere Wege nicht mehr starten. Wenn das ein Problem ist, kann man mit einem Alias arbeiten:

Der Alias trägt den IntentFilter für den Launcher und kann ein- und ausgeschaltet werden. Die referenzierte Activity bleibt davon unberührt und kann z.B. über den Button „Öffnen“ im Play Store gestartet werden (durch Deklaration der Category INFO). Als name kann ein willkürlicher Klassenname gesetzt werden. Die Klasse muss nicht existieren. Der Name dient der Referenzierung des Alias‘:

DEIN KONTAKT ZUR APP-KANTINE


LINEAS Software GmbH
Theodor-Heuss-Str. 2
38122 Braunschweig

Tel.: +49 531 88 52 – 3000
Fax: +49 531 88 52 – 3500

E-Mail: info@app-kantine.de