Je sais comment mettre à jour mes propres programmes, et je sais comment ouvrir des programmes en utilisant un Uri prédéfini (pour les sms ou les e-mails par exemple)
J'ai besoin de savoir comment je peux créer une intention pour ouvrir MyTracks ou toute autre application dont je ne sais pas quelles intentions ils écoutent.
J'ai obtenu cette information de DDMS, mais je n'ai pas réussi à transformer cela en une intention que je peux utiliser. Ceci est tiré de l'ouverture manuelle de MyTracks.
Merci de votre aide
05-06 11:22:24.945: INFO/ActivityManager(76): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks bnds=[243,338][317,417] }
05-06 11:22:25.005: INFO/ActivityManager(76): Start proc com.google.android.maps.mytracks for activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: pid=1176 uid=10063 gids={3003, 1015}
05-06 11:22:26.995: INFO/ActivityManager(76): Displayed activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: 1996 ms (total 1996 ms)
la source
onCreate
=>Bundle extras = getIntent().getExtras()
=>if(extras != null) { extras.getString("blah") }
etcgetPackageManager().getLaunchIntentForPackage()
fait déjà tout cela pour vous github.com/android/platform_frameworks_base/blob/master/core/…J'ai travaillé comme ça,
Exemple d'utilisation:
J'espère que ça aide quelqu'un.
la source
getLaunchIntentForPackage
appel.getLaunchIntentForPackage()
ajoute déjà la catégorie, voir source: github.com/android/platform_frameworks_base/blob/master/core/…ÉDITER :
comme suggéré dans les commentaires, ajoutez une ligne avant
startActivity(intent);
la source
Si vous avez déjà le nom du package que vous souhaitez activer, vous pouvez utiliser le code suivant qui est un peu plus générique:
J'ai trouvé que cela fonctionne mieux pour les cas où l'activité principale n'a pas été trouvée par la méthode régulière de démarrage de l'activité MAIN.
la source
Voici le code de ma solution basée sur la solution MasterGaurav:
la source
En utilisant la solution d'inversus, j'ai développé l'extrait de code avec une fonction, qui sera appelée lorsque l'application souhaitée n'est pas installée pour le moment. Cela fonctionne donc comme: Exécutez l'application par nom de package. Si vous ne le trouvez pas, ouvrez Android Market - Google Play pour ce package .
Et il est utilisé comme ceci:
la source
Utilisez ceci :
la source
Ouvrez l'application si elle existe ou ouvrez l'application Play Store pour l'installer:
la source
Pour démarrer une autre activité d'application à partir de mon activité d'application. Cela fonctionne bien pour moi.
Le code ci-dessous fonctionnera si une autre application est déjà installée sur votre téléphone, sinon il n'est pas possible de rediriger une application vers une autre application.Assurez-vous donc que votre application est lancée ou non
la source
// Cela fonctionne sur Android Lollipop 5.0.2
la source
Étant donné que les applications ne sont pas autorisées à modifier de nombreux paramètres du téléphone, vous pouvez ouvrir une activité de paramètres comme une autre application.
Regardez votre sortie LogCat après avoir modifié le paramètre manuellement:
Ensuite, utilisez ceci pour afficher la page des paramètres de votre application:
la source
Pour l'API niveau 3+, rien de plus qu'une ligne de code:
Intent intent = context.getPackageManager().getLaunchIntentForPackage("name.of.package");
Renvoyer une intention de lancement CATEGORY_INFO (les applications sans activité de lancement, les fonds d'écran par exemple, l'utilisent souvent pour fournir des informations sur l'application) et, si aucune information n'est trouvée, renvoie le CATEGORY_LAUNCH du package, s'il existe.
la source
Si vous essayez de démarrer un SERVICE plutôt qu'une activité, cela a fonctionné pour moi:
Si vous utilisez la méthode intent.setComponent (...) comme mentionné dans d'autres réponses, vous pouvez obtenir un avertissement «Les intentions implicites avec startService ne sont pas sûres».
la source
Vous pouvez également ouvrir l'intention de votre application dans l'autre application avec:
où
uri
est le lien profond vers l'autre applicationla source
Utilisez ce qui suit:
la source
Lancer une application depuis une autre application sur Android
la source
Si vous souhaitez ouvrir une autre application et qu'elle n'est pas installée, vous pouvez l'envoyer au Google App Store pour la télécharger
Créez d'abord la méthode openOtherApp par exemple
2.- Utilisation
la source
Essayez ce code, j'espère que cela vous aidera. Si ce package est disponible, cela ouvrira l'application ou ouvrira le Play Store pour les téléchargements
la source
Vous pouvez utiliser cette commande pour rechercher les noms de packages installés sur un périphérique:
Référence: http://www.aftvnews.com/how-to-determine-the-package-name-of-an-android-app/
la source
la source