Currently I'm using CX file explorer.
I'm not entirely sure if this is problem on Android side or the application, but it is definitely not trivial for a typical user to see where the issue is.
Result: Dotterel crashes.
AndroidRuntime: FATAL EXCEPTION: main
AndroidRuntime: Process: nimble.dotterel, PID: 6406
AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=196610, result=-1, data=Intent { dat=content://com.cxinventor.file.explorer.fileprovider/root/storage/emulated/0/dotterel_dict/user_combined.json flg=0x3 }} to activity {nimble.dotterel/nimble.dotterel.DotterelSettings}: java.lang.SecurityException: No persistable permission grants found for UID 10150 and Uri 0 @ content://com.cxinventor.file.explorer.fileprovider/root/storage/emulated/0/dotterel_dict/user_combined.json
AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4547)
AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:4590)
AndroidRuntime: at android.app.ActivityThread.-wrap20(ActivityThread.java)
AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1772)
AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:110)
AndroidRuntime: at android.os.Looper.loop(Looper.java:232)
AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6806)
AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1103)
AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
AndroidRuntime: Caused by: java.lang.SecurityException: No persistable permission grants found for UID 10150 and Uri 0 @ content://com.cxinventor.file.explorer.fileprovider/root/storage/emulated/0/dotterel_dict/user_combined.json
AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1708)
AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1661)
AndroidRuntime: at android.app.ActivityManagerProxy.takePersistableUriPermission(ActivityManagerNative.java:5155)
AndroidRuntime: at android.content.ContentResolver.takePersistableUriPermission(ContentResolver.java:2006)
AndroidRuntime: at nimble.dotterel.DictionariesPreferenceFragment.onActivityResult(DictionariesPreference.kt:305)
AndroidRuntime: at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:170)
AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:7234)
AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4543)
AndroidRuntime: ... 9 more