icerockdev / moko-media

Media selection & presenting for mobile (android & ios) Kotlin Multiplatform development
https://moko.icerock.dev/
Apache License 2.0
120 stars 12 forks source link

FileUriExposedException for picking from camera, Android 10 #20

Closed Tetraquark closed 3 years ago

Tetraquark commented 3 years ago

I get exception FileUriExposedException when trying to get a picture from camera in Android 10:

W/System.err: android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/dev.icerock.moko.samples.media.debug/files/Pictures/image.png exposed beyond app through ClipData.Item.getUri()
        at android.os.StrictMode.onFileUriExposed(StrictMode.java:2083)
W/System.err:     at android.net.Uri.checkFileUriExposed(Uri.java:2388)
        at android.content.ClipData.prepareToLeaveProcess(ClipData.java:977)
        at android.content.Intent.prepareToLeaveProcess(Intent.java:10759)
        at android.content.Intent.prepareToLeaveProcess(Intent.java:10744)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1703)
        at android.app.Activity.startActivityForResult(Activity.java:5192)
        at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:675)
        at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
        at androidx.fragment.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:795)
        at androidx.fragment.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:932)
        at androidx.fragment.app.Fragment.startActivityForResult(Fragment.java:1278)
        at androidx.fragment.app.Fragment.startActivityForResult(Fragment.java:1266)
        at dev.icerock.moko.media.picker.MediaPickerController$PickerFragment.pickCameraImage(MediaPickerController.kt:208)
W/System.err:     at dev.icerock.moko.media.picker.MediaPickerController.pickImage(MediaPickerController.kt:98)
        at dev.icerock.moko.media.picker.MediaPickerController.pickImage(MediaPickerController.kt:62)
        at com.icerockdev.library.ImageSelectionViewModel$onSelectImagePressed$1.invokeSuspend(ImageSelectionViewModel.kt:24)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)