J'ai cette méthode jusqu'à présent, mais il est apparu comme s'il manquait quelque chose
par exemple, j'ai un fichier /sdcard/sound.3ga qui renvoie false (comme s'il n'y a pas d'activité qui puisse gérer ce type de fichier), mais quand je l'ouvre depuis le gestionnaire de fichiers, il s'ouvre avec le lecteur multimédia sans problème
Je pense que cette intention n'est pas complète et je dois faire quelque chose de plus pour m'assurer que la variable handlerExists sera fausse UNIQUEMENT s'il n'y a aucune activité qui peut gérer cette intention
PackageManager pm = getPackageManager();
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uriString)).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
intent.setDataAndType(Uri.fromFile(new File(uriString)),mimetype);
boolean handlerExists = intent.resolveActivity(pm) != null;