Je souhaite lancer un package installé à partir de mon application Android. Je suppose qu'il est possible d'utiliser des intentions, mais je n'ai pas trouvé de moyen de le faire. Existe-t-il un lien, où trouver les informations?
java
android
android-intent
Bastian
la source
la source
Réponses:
Si vous ne connaissez pas l'activité principale, le nom du package peut être utilisé pour lancer l'application.
la source
CATEGORY_INFO
, puis une activité principale dans la catégorieCATEGORY_LAUNCHER
. Renvoie null si aucune n'est trouvée. "Je sais que cela a été répondu, mais voici comment j'ai mis en œuvre quelque chose de similaire:
Encore mieux, voici la méthode:
Suppression du code en double:
la source
J'ai trouvé la solution. Dans le fichier manifeste de l'application, j'ai trouvé le nom du package: com.package.address et le nom de l'activité principale que je veux lancer: MainActivity Le code suivant démarre cette application:
la source
la source
Voici mon exemple de lancement d'un scanner de code barre / QR depuis mon application si quelqu'un le trouve utile
la source
Modifier en fonction du commentaire
Dans certaines versions - comme suggéré dans les commentaires - l'exception levée peut être différente.
Ainsi la solution ci-dessous est légèrement modifiée
Réponse originale
Bien que bien répondu, il existe une implémentation assez simple qui gère si l'application n'est pas installée. Je le fais comme ça
Remplacez "applicationId" par le package que vous souhaitez ouvrir, tel que com.google.maps, etc.
la source
PackageManager.getLaunchIntentForPackage(...)
méthode renvoie null si le nom du package n'est pas reconnu. Il ne jette pasPackageManager.NameNotFoundException
. Voyez ici .startActivity(null)
un émulateur Android 10 et il lance unNullPointerException
et non unPackageManager.NameNotFoundException
.startActivity(Intent intent)
méthode lorsqu'elle reçoit une valeur nulleIntent
et qu'est-ce qui vous fait dire cela? La documentation des développeurs Android indique seulement qu'elle lancera unActivityNotFoundException
.la source
Si vous souhaitez ouvrir une activité spécifique d'une autre application, nous pouvons l'utiliser.
Si vous avez besoin d'une autre application, au lieu d'afficher Toast, vous pouvez afficher une boîte de dialogue. En utilisant la boîte de dialogue, vous pouvez amener l'utilisateur sur Play-Store pour télécharger l'application requise.
la source
com.android.settings.fuelgauge.PowerUsageSummary
est juste un alias d' activité decom.android.settings.Settings$PowerUsageSummaryActivity
, et il a été supprimé dans Android Pie , j'ai donc sommé la modification pour que cette réponse convienne à Pie. Notez qu'il est également compatible avec une version plus ancienne, voir Validation AOSP le 10 novembre 2011 af9252849fd94c1f2859c56a4010900ea38a607e etcSi vous connaissez les données et l'action sur laquelle le package installé réagit, vous devez simplement ajouter ces informations à votre instance d'intention avant de la démarrer.
Si vous avez accès au manifeste Android de l'autre application, vous pouvez y voir toutes les informations nécessaires.
la source
Étapes pour lancer une nouvelle activité comme suit:
1.Obtenez l'intention du colis
2.Si l'intention est nulle, redirigez l'utilisateur vers Playstore
3.Si l'intention n'est pas une activité ouverte nulle
la source
Il est possible de démarrer l'activité d'une application en utilisant
Intent.setClassName
selon les documents.Un exemple:
Pour l'ouvrir en dehors de l'application actuelle, ajoutez ce drapeau avant de démarrer l'intention.
Une réponse connexe ici
la source
la source