Comment ajouter un type mime personnalisé?
Ce que je veux: Pour être en mesure d'envoyer mon fichier personnalisé par mail et de les importer avec mon application à partir du bouton aperçu dans GMail ou lors de l'ouvrir dans un navigateur de fichiers.
Ce que je sais: j'ai lu beaucoup de type mime personnalisé des gestionnaires, que android ne se soucie pas de l'extension de fichier etc., mais comment créer le type mime de mon fichier personnalisé?
La question: ai-je besoin d'être un fournisseur de contenu? Je veux simplement importer des fichiers (de sauvegarde) de ne pas fournir quoi que ce soit. J'ai vu des gens avoir des gestionnaires pour "application/abc" de dire que ça fonctionne très bien, mais comment ajouter que la connexion de mon fichier "monfichier.abc" et le type mime?
Une certaine direction, comment enregistrer/carte personnalisée types mime serait appréciée! 🙂
- Intent-Filter devrait être assez bon. Jetez un oeil à stackoverflow.com/questions/1733195/...
- Vous n'avez pas vraiment besoin de créer votre propre type mime. Vous pouvez utiliser l'extension de fichier. Regardez dans cette réponse, stackoverflow.com/a/2062112/1298357 . C'est très utile!
Vous devez vous connecter pour publier un commentaire.
Maintenant, quand vous la réception d'un sms avec le texte
"http://{your mime}.com"
ou en cliquant sur un lien sur le web avec ce texte, votre activité (MainActivity) sera exécuté.Vous pouvez également ajouter des paramètres:
Puis dans onCreate() ou onResume() les méthodes que vous allez ajouter:
Aussi loin que je peux dire, les types mime sont assez souples (j'ai créé le mien comme
application/whatever
) et ils sont immédiatement acceptée par Android, aussi loin que Dalvik version 2.1. De les manipuler correctement, j'ai ajouté ce intent-filter:Il y a une mise en garde bien. Même si j'ai toujours définir le type de l'envoyer Intention avec
intent.setType("application/whatever");
, sur certains téléphones, j'ai vu les données réelles sur l'arrivéeapplication/octet
(voir la valeur, j'ai affecté les entrants de l'Intention et de l'inspecter sa valeur directementIntent currentIntent = getIntent();
). La réception de l'appareil Android ne savais pas quoi faire avec les données entrantes et qui me l'a dit. J'ai donc ajoutéCette approche pourrait être gênant, bien sûr, mais le problème avec Gmail, c'est que ce n'est pas nécessairement écrire le fichier avec le nom qu'il arrive, ce qui rend n'importe quel Chemin je choisir pour définir inutile. Et au moins avec l'arrivée d'un
octet-stream
vous savez c'est pas de l'application spécifique des données que vous avez volé loin... Encore, vous devez valider les données par la suite et de ne pas simplement supposer que c'est valable pour votre application.Pas testé, mais quelque chose comme cela devrait fonctionner. Mettre dans votre AndroidManifest.xml à l'activité que vous souhaitez ouvrir le fichier:
Enregistrer un type mime personnalisé à l'aide de android.webkit.MimeTypeMap