I am developing a custom camera application which captures a picture and stores it in the gallery. When I share that image using Intent.ACTION_SEND, it works absolutely fine on all devices except for devices having API 26, i.e. OREO.
My code to share the image is:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/jpeg");
Uri uriShare = Uri.fromFile(outFile);
//outfile is the path of the image stored in the gallery
shareIntent.putExtra(Intent.EXTRA_STREAM, uriShare);
startActivity(Intent.createChooser(shareIntent, ""));
Can anyone help me resolve this issue?
Use File Provider for getting IMAGE URI and add flags to the intent... follow these steps carefully.. android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyond app through Intent.getData() This update has been done since nougat..
If
targetSdkVersion
is higher than 24, then FileProvider is used to grant access.Create an xml file(Path:
res\xml
)provider_paths.xml
Add a Provider in AndroidManifest.xml under
and replace
to
and you are done.
For More Details
Read this
https://developer.android.com/reference/android/support/v4/content/FileProvider.html
Source Code
https://drive.google.com/open?id=1vfO43dMSt096CMp6nrOJNl3fJAf6MPwG