I'm trying to implement a sharing function into my app, but it crashes every time it tries to bring up the sharing dialog.
The errors occur in these lines of code
val builder = AlertDialog.Builder(mContext)
builder.setTitle(mContext.getString(R.string.dialog_title_options))
builder.setItems(items) { dialog, item ->
if (item == 0) {
shareFileDialog(holder.adapterPosition)
}
if (item == 1) {
renameFileDialog(holder.adapterPosition)
} else if (item == 2) {
deleteFileDialog(holder.adapterPosition)
}
}
**2nd portion**
fun shareFileDialog(position: Int) {
val shareIntent = Intent()
shareIntent.action = Intent.ACTION_SEND
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(File(getItem(position)?.filePath)))
shareIntent.type = "audio/mp4"
mContext.startActivity(
Intent.createChooser(
shareIntent,
mContext.getText(R.string.send_to)
)
)
}
Crash log
android.os.FileUriExposedException: file:///storage/emulated/0/SoundRecorder/3f4f4c.mp4 exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:2083)
at android.net.Uri.checkFileUriExposed(Uri.java:2395)
at android.content.ClipData.prepareToLeaveProcess(ClipData.java:980)
at android.content.Intent.prepareToLeaveProcess(Intent.java:11455)
at android.content.Intent.prepareToLeaveProcess(Intent.java:11461)
at android.content.Intent.prepareToLeaveProcess(Intent.java:11440)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1714)
at android.app.Activity.startActivityForResult(Activity.java:5258)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:675)
at android.app.Activity.startActivityForResult(Activity.java:5203)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:662)
at android.app.Activity.startActivity(Activity.java:5587)
at android.app.Activity.startActivity(Activity.java:5555)
at com.khumomashapa.notes.adapter.FileViewerAdapter.shareFileDialog(FileViewerAdapter.kt:175)
at com.khumomashapa.notes.adapter.FileViewerAdapter$onBindViewHolder$2$1.onClick(FileViewerAdapter.kt:73)
This is what the log shows me when it crashes. I'm trying to get the app to share or send a file to another device.