Une intention implicite spécifie une action qui peut appeler n'importe quelle application sur l'appareil capable d'exécuter l'action. L'utilisation d'une intention implicite est utile lorsque votre application ne peut pas effectuer l'action, mais d'autres applications le peuvent probablement. Si plusieurs applications enregistrées peuvent gérer cette demande, l'utilisateur sera invité à sélectionner celle à utiliser.
Cependant, il est possible qu'aucune application ne puisse gérer votre intention. Dans ce cas, votre application se bloque lorsque vous appelez startActivity (). Pour éviter cela, avant d'appeler startActivity (), vous devez d'abord vérifier qu'il existe au moins une application enregistrée dans le système qui peut gérer l'intention. Pour ce faire, utilisez resolveActivity () sur votre objet d'intention:
// Verify that there are applications registered to handle this intent
// (resolveActivity returns null if none are registered)
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}