Greetings all,
I've resorted to writing an image file to external storage in order to get
the shared intent to work, but I'd much prefer letting users share images
even without having an SD card mounted.
The following code fails when sharing with the Google Drive and Facebook
apps:
private final void shareImage() {
Intent share;
Uri imageURI;
String defaultTitle;
String filename;
File cacheDirectory;
File imageFile;
cacheDirectory = getCacheDir();
filename = cacheDirectory.getAbsolutePath() + "/content.jpg";
imageFile = new File(filename);
writeImageToPath(imageFile);
imageURI = Uri.parse("file://" + imageFile.getAbsolutePath());
share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpg");
share.putExtra(Intent.EXTRA_SUBJECT, "Default Title");
share.putExtra(Intent.EXTRA_STREAM, imageURI);
startActivity(Intent.createChooser(share, "Share diagram using"));
}
private void writeImageToPath(String aFilename) {
Bitmap finalBitmap;
File file;
file = getFileStreamPath(aFilename);
if(file.exists())
file.delete();
finalBitmap = bitmapOfDiagram();
try {
FileOutputStream out = openFileOutput(aFilename, MODE_WORLD_READABLE);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
As you can see, I write the file with MODE_WORLD_READABLE, and the apps
appear to send the file to their respective servers. However, they returns
some time later reporting, "Upload failed - click to retry".
Failure with both services leads me to question my code. Stepping through
the results with the debugger shows no point of failure in the generation
of the file nor in invoking the intent.
As I mentioned before, I'd like to permit users to send images without
requiring them to use an SD card to do it. Can someone point me in the
right direction?
Alfonso Guerra
Apokalypse Software Corp.
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en