web-dev-qa-db-fra.com

Android comment masquer par programmation l'icône du lanceur

mon application est conçue pour n'être exécutée qu'une seule fois. En tant que tel, je souhaite masquer l'icône du lanceur après la première exécution, mais sans désinstaller l'application.

J'ai vu des applications similaires - elles peuvent supprimer leurs propres icônes de la liste des applications du lanceur. Comment puis-je obtenir les mêmes résultats? Je vous remercie.

44
user1047351
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

Notez que l'icône peut ne pas disparaître avant le prochain redémarrage.

65
Kuffs

Masquer l'icône des applications à l'aide du code ci-dessous

PackageManager pkg=this.getPackageManager();
pkg.setComponentEnabledSetting(new ComponentName(this,SplashActivity.class),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                        PackageManager.DONT_KILL_APP);

// activité qui est ouverte pour la première fois dans un fichier manifeste qui est déclaré comme <category Android:name="Android.intent.category.LAUNCHER" />

Voici comment ramener l'icône de l'application

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this,SplashActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
11
Sahir Saiyed

Vous pouvez avoir une application sans lanceur en N'incluant pas de filtre d'intention avec MAIN et LAUNCHER dans la déclaration de l'activité dans le AndroidManifest - la question devient alors comment faire le premier coup d'envoi .. Widget peut-être?

1
Clocker

Avec Android Q (API 29) Google a modifié la visibilité de l'icône du lanceur comportement. Même si vous désactivez votre activité de lancement ou supprimez complètement le Android.intent.category.LAUNCHER <intent-filter> de toutes vos activités, l'application apparaîtra dans le lanceur et ouvrira les paramètres de l'application Android OS), à l'exception de:

  • Packages qui ne déclarent aucune autorisation dans leurs fichiers manifestes respectifs
  • Applications système
  • Applications qui ne contiennent aucun composant dans la balise de leur manifeste respectif
0
G00fY