J'ai deux applications (A, B) que je veux relier entre eux. Lorsque l'utilisateur est dans l'application A, en cliquant sur un bouton, je veux ouvrir l'application B et lui envoyer des données.Comment utiliser putExtra pour ouvrir une autre application et lui envoyer des données?
J'ai utilisé cette méthode dans l'application A pour aller application B et envoyer des données à l'application B:
public static boolean openApp(Context mContext, String packageName) {
PackageManager manager = context.getPackageManager();
Intent goToEncyclopedia = manager.getLaunchIntentForPackage(packageName);
if (goToEncyclopedia == null) {
return false;
}
goToEncyclopedia.addCategory(Intent.CATEGORY_LAUNCHER);
goToEncyclopedia.putExtra("NAME" , "Ehsan");
context.startActivity(goToEncyclopedia);
return true;
}
et je l'appelle comme ça dans l'application A:
openApp(mContext, "encyclopedia.rasad.app.codenevisha.com.encyclopedia");
Quand j'appelle cette méthode va ouvrir l'application B mais les données que je veux envoyer avec putExtra ne seront pas envoyées.
Et voici mon code dans l'App B pour recevoir des données de l'intention:
Bundle bundle = getIntent().getExtras();
if (bundle != null){
String name = bundle.getString("NAME");
Log.i("EXTRAS", name);
}
que je vois, vous envoyer une intention de lanceur au paquet . Essayez d'envoyer une intention directement à l'activité. C'est peut-être pourquoi vos données se perdent quelque part. –
lorsque je change directement l'intention en activité, même l'application B ne s'ouvre pas – Ehsan
poster votre manifeste s'il vous plaît –