I want to share a file(.pdf,.apk etc) using share Intent, I searched google but I find only the code for sharing Image
Intent sharingIntent = new Intent(Inte
This will help you
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse(path);
sharingIntent.setType("*/*");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share using"));
You use the same code, you just change the MIME type for the type of data you wish to share. If you wish to share anything regardless of type, use */*
For sdk 24 and up, if you need to get the Uri of a file outside your app storage you have this error.
android.os.FileUriExposedException: file:///storage/emulated/0/MyApp/Camera_20180105_172234.jpg exposed beyond app through ClipData.Item.getUri()
to fix this : exposed beyond app through ClipData.Item.getUri
To keep your code pragmatic, use ShareCompat
class:
ShareCompat.IntentBuilder.from(this)
.setStream(uri)
.setType(URLConnection.guessContentTypeFromName(file.getName()))
.startChooser();