Partage de Fichier Image à partir du répertoire de cache Via Intention~android
Je suis en train de partager le fichier image dans le répertoire de cache, j'ai le chemin d'accès complet, mais pas en mesure d'envoyer le fichier en pièces jointes, le code est
File shareImage=Utils.getBitmapFile();
Log.d("Activity", "get final path in result"+shareImage.getAbsolutePath());
/*MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext=shareImage.getName().substring(shareImage.getName().lastIndexOf(".")+1);
String type = mime.getMimeTypeFromExtension(ext);
shareIntent.setType(type);
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
Uri shareImageUri = Uri.fromFile(shareImage);
Uri shareImageUri = Uri.fromParts("content", shareImage.getAbsolutePath(), null);//("content://"+shareImage.getAbsolutePath());
*/
Uri shareImageUri = Uri.fromFile(shareImage);
Log.d("Result ","uri is "+shareImageUri.toString());
shareIntent.putExtra(Intent.EXTRA_STREAM, shareImageUri);
startActivity(Intent.createChooser(shareIntent, "Share Results"));
ci-dessus, a commenté le code ne fonctionne pas
d'envoi de courrier montre un attachement,mais ne reçoit pas de fin il n'y a pas de pièce jointe,
facebook partage également l'affiche aucune image dans le post
ce la raison??
J'ai déjà vu le suit DONC les Liens how-to-use-part-de l'image à l'aide de-partage-de l'intention de partager des-images-en-android et beaucoup d'autres, aucun d'entre eux sont en mesure de résoudre le problème
P. S.;
1.Le but est de prendre une capture d'écran de l'écran de l'enregistrer dans le répertoire de cache et de les partager en ligne à partir de là
2.Oui j'ai des fichier, je peux le tirer par DDMS de l'appareil et de voir sur le système.
- Cache directory est un répertoire privé pour votre application. L'application de partage sera pas en mesure d'accéder au fichier.
- Lire developer.android.com/guide/topics/data/..., les fichiers de sauvegarde qui doit être partagée
- Si vous ne voulez pas utiliser de stockage externe, vous devez créer un ContentProvider pour accéder aux fichiers où que vous les garder (même dans le répertoire de cache fonctionne)
- voir stackoverflow.com/questions/14864707/... DONC, les liens stephendnicholas.com/archives/974 pour le Fournisseur de Contenu, mais qui ne semble pas être à travailler comme par tant de poster!!!
- trouvé android dev blog pour partager les intentions ici android-developers.blogspot.in/2012/02/share-with-intents.html, explique beaucoup de choses
- Vous pouvez copier le fichier dans le cache externe et de partager de cette façon.
Vous devez vous connecter pour publier un commentaire.
Comme l'a noté, d'autres applications n'ont pas accès à votre application de stockage interne.
N'hésitez pas à ouvrir une nouvelle StackOverflow question, où vous expliquez, complètement et précisément quelles solutions vous avez essayé et quels problèmes spécifiques rencontrés.
N'hésitez pas à ouvrir une nouvelle StackOverflow question, où vous expliquez, complètement et précisément ce "qui ne semble pas être au travail" signifie.
Ou, utiliser
FileProvider
, qui offre cette fonctionnalité avec aucun code n'est requis au-delà d'une entrée dans votre manifeste.Ou, stocker l'image sur votre stockage externe, comme
getExternalCacheDir()
.J'ai suivi @CommonsWare conseils et utilisé un FileProvider. En supposant que votre image est déjà dans le cache interne répertoire que
cache/images/image.png
, alors vous pouvez utiliser les étapes suivantes. Ils sont pour la plupart à une consolidation de la documentation.Configurer le FileProvider dans le Manifeste
Remplacer
com.example.myapp
avec votre package d'application nom.Créer res/xml/filepaths.xml
Ceci dit l'FileProvider où obtenir les fichiers à partager (à l'aide du répertoire de cache dans ce cas).
Partager l'image
Documentation
Je partage d'images mises en cache par suivi les étapes .
1.Copie de votre image de cache de chemin cible.
2.Obtenez de l'Uri de la copie du fichier.
3.Partager l'image, par l'intention
sdcard
répertoire de démarrage.