J'ai passé en revue toutes les questions semblables ici, mais je ne peux pas pour la vie de moi comprendre ce que je fais mal.Lancer une intention pour le type de fichier et MIME?
J'ai écrit une application qui essaie de lancer divers fichiers, sorte de navigateur de fichiers. Lors d'un clic sur un fichier, il tente de lancer le programme en fonction du type MIME associé ou présente le dialogue "Choisir une application à lancer".
Voici le code que je utilise pour lancer:
File file = new File(app.mediaPath() + "/" +_mediaFiles.get(position));
Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
myIntent.setDataAndType(Uri.fromFile(file),mimetype);
startActivity(myIntent);
Cela échoue et génère l'erreur:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///file:/mnt/sdcard/roms/nes/Baseball_simulator.nes }
Maintenant, si j'installe OI Gestionnaire de fichiers, par exemple, il ouvre au lieu de cette Une erreur est levée, et si je clique sur le même fichier de l'intérieur, elle lance les boîtes de dialogue appropriées.
J'ai remarqué que le type MIME pour ce fichier particulier échoue, mais d'autres types mime comme .zip
renvoient des valeurs. Ai-je quelque chose qui manque quand le type MIME est nul pour appeler une boîte de dialogue qui permet à l'utilisateur de sélectionner?
J'ai essayé d'autres variantes de lancement de l'application, y compris ne pas définir le type MIME et uniquement en utilisant .setData
sans succès. L'action que je veux arriver est, un utilisateur clique sur un fichier, si elle est associée à une application que l'application lance, sinon, l'utilisateur obtient la boîte de dialogue «Action complète en utilisant» avec une liste d'applications.
Merci pour tout conseil.
que se passe-t-il dans mimetype string ?? le coller ici –
On dirait que c'est quelque chose qui a un fichier associé c'est le bon type MIME, mais si c'est quelque chose qui n'a pas été lié à une application, ça passe par null .. – stonedonkey