Finora ho questo metodo, ma mi è sembrato che mancasse qualcosa
ad esempio ho un file /sdcard/sound.3ga che restituisce false (come se non ci fossero attività in grado di gestire questo tipo di file), ma quando lo apro dal file manager si apre con il lettore multimediale senza problemi
Penso che questo intento non sia completo e devo fare qualcosa di più per assicurarmi che la variabile handlerExists sia falsa SOLO se non ci sono attività in grado di gestire questo intento
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;