KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
My app generates images that a user can save or share with others. The code below works for most apps: Messenger, Facebook, Dropbox, email, etc. Meaning, the image is loaded by the chosen app, and a user can share the image successfully with that app. Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("image/png"); File o = new File(dir, "file.png"); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(o)); startActivity(Intent.createChooser(intent , "Send options")); However, when I choose Google+ in the list of apps, google+ starts, but the image is not included in the post window. Instead, google+ displays a Toast message with: "You can only post photos stored on your device." This is a little confusing, because the image is on the external SD card, i.e. /mnt/sdcard/AppDir/file.png. I am using the latest update of Google+ app (2.3.1.242969). Is there another trick to sharing an image with google+? Thank you. UPDATE: My app generates the images that are shared, so the sample below from @chirag-shah wasn't directly applicable. But, using the MediaStore looks like the right idea. I've settled on the basic code below: void shareImage(int position) { File f = getFileFor(position); ContentValues values = new ContentValues(2); values.put(MediaStore.Images.Media.MIME_TYPE, "image/png"); values.put(MediaStore.Images.Media.DATA, f.getAbsolutePath()); Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("image/png"); intent.putExtra(Intent.EXTRA_STREAM, uri); startActivity(Intent.createChooser(intent , "Send options")); } This works with Google+ and all other apps I've tested with. I'm leaving the question open in case this is not best practice. Can anyone confirm that this is the rig
Tags (comma-separated)
Save Edits
Cancel