Si vous êtes confronté à l'erreur "Permission Denial : starting Intent..." ou si l'application se bloque sans raison lors du lancement de l'application, utilisez ce code d'une seule ligne dans Manifest
android:exported="true"
S'il vous plaît soyez prudent avec finish() ; , si vous l'avez manqué l'application se fige. si son mentionné l'application serait un lanceur lisse.
finish();
L'autre solution ne fonctionne que pour deux activités qui se trouvent dans la même application. Dans mon cas, l'application B ne connaît pas la classe com.example.MyExampleActivity.class
dans le code, donc la compilation échouera.
J'ai cherché sur le web et j'ai trouvé quelque chose comme ceci ci-dessous, et ça marche bien.
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example", "com.example.MyExampleActivity"));
startActivity(intent);
Vous pouvez également utiliser la méthode setClassName :
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.hotfoot.rapid.adani.wheeler.android", "com.hotfoot.rapid.adani.wheeler.android.view.activities.MainActivity");
startActivity(intent);
finish();
Vous pouvez également transmettre les valeurs d'une application à une autre :
Intent launchIntent = getApplicationContext().getPackageManager().getLaunchIntentForPackage("com.hotfoot.rapid.adani.wheeler.android.LoginActivity");
if (launchIntent != null) {
launchIntent.putExtra("AppID", "MY-CHILD-APP1");
launchIntent.putExtra("UserID", "MY-APP");
launchIntent.putExtra("Password", "MY-PASSWORD");
startActivity(launchIntent);
finish();
} else {
Toast.makeText(getApplicationContext(), " launch Intent not available", Toast.LENGTH_SHORT).show();
}