2010-07-01 23 views
0

Je sais déjeuner une autre activité, mais comment puis-je m'assurer qu'une activité existe pour mon type MIME avant de commencer l'activité? Par exemple, si j'ai un fichier PDF que je veux afficher, comment puis-je m'assurer qu'il existe une visionneuse PDF?Découverte si une visionneuse par défaut existe

ici est le code que j'utilise pour le déjeuner le lecteur PDF

MimeTypeMap tMimeType = MimeTypeMap.getSingleton(); 
String tMimeStr = tMimeType.getMimeTypeFromExtension("pdf"); 
Intent intent = new Intent(); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setAction(android.content.Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile("xyz.pdf"), tMimeStr); 
try 
{ 
    startActivity(intent); 
} 
catch (Exception e) 
{ 
    // Display error message here 
} 

Répondre

3

Prenez le Intent et le transmettre à PackageManager « s queryIntentActivities(). Si vous obtenez une liste de zéro-longueur, il n'y a rien qui peut gérer votre Intent. Si vous obtenez une liste avec deux ou plusieurs entrées, pensez à utiliser Intent.createChooser() pour donner à l'utilisateur le choix de l'activité à utiliser.

+0

A travaillé comme un charme Merci – Sam