All file and media picker library for android. This library is designed to simplify the process of selecting and retrieving media files from an Android device, and supports media capture for images and videos.
I test sample app. I changed mime type to "application/octet-stream" in pick PDF buttons onclick handler. Then in the app we can select the file, but in ActivityResultLauncher both testFile.canRead(), testFile.canWrite() are false. As result the file can not be read.
The cause seems to be mediafile permission is requested
java.lang.NullPointerException
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDataColumn(FileUtils.kt:154)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getMediaDocumentPath(FileUtils.kt:96)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.pathFromURI(FileUtils.kt:39)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getRealPath(FileUtils.kt:21)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:66)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:56)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.selectFile$lambda$0(PickerUtils.kt:23)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.$r8$lambda$5EjpwZuwUTQfOHixKEdyGZdAUG8(Unknown Source:0)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:2)
at androidx.activity.result.ActivityResultRegistry$1.onStateChanged(ActivityResultRegistry.java:149)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:314)
at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.kt:251)
at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.kt:287)
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.kt:136)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.kt:119)
at androidx.lifecycle.ReportFragment$Companion.dispatch$lifecycle_runtime_release(ReportFragment.kt:192)
at androidx.lifecycle.ReportFragment$LifecycleCallbacks.onActivityPostStarted(ReportFragment.kt:121)
at android.app.Activity.dispatchActivityPostStarted(Activity.java:1431)
at android.app.Activity.performStart(Activity.java:8296)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3776)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2311)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loopOnce(Looper.java:238)
at android.os.Looper.loop(Looper.java:357)
at android.app.ActivityThread.main(ActivityThread.java:8090)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
Whenever my app open the camera UI, it's always using the front camera. How do I force to use the back camera? Couldn't find the config inside ImageCaptureConfig.
java.lang.SecurityException: UID 10299 does not have permission to content://com.abc.xyz.filepicker.fileprovider/secure_name/FilePicker/tempVideo_1685537034619.mp4 [user 0]
SecurityException While Trying to capture video from camera
Hi, Video Capture is working fine in android 13 but video picker is giving error , I am using latest 0.1.4
Caused by: java.lang.SecurityException: UID 10512 does not have permission to content://media/picker/0/com.android.providers.media.photopicker/media/1000085114 [user 0]
I tried to pick a pdf document from storage in android 10 or higher versions
below android 10 versions perfectly working
manged
permissions
and I get.
FATAL EXCEPTION: main
Process: com.inaipi.spark, PID: 23383
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=907489456, result=-1, data=Intent { dat=content://com.android.providers.downloads.documents/... flg=0x43 }} to activity {com.inaipi.spark/com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity}: java.lang.NumberFormatException: For input string: "msf:1000000043"
at android.app.ActivityThread.deliverResults(ActivityThread.java:5323)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5362)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.NumberFormatException: For input string: "msf:1000000043"
at java.lang.Long.parseLong(Long.java:736)
at java.lang.Long.valueOf(Long.java:1188)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDownloadsDocumentPath(FileUtils.kt:114)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.pathFromURI(FileUtils.kt:35)
at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getRealPath(FileUtils.kt:21)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:66)
at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:56)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.selectFile$lambda$0(PickerUtils.kt:23)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils.$r8$lambda$5EjpwZuwUTQfOHixKEdyGZdAUG8(Unknown Source:0)
at com.nareshchocha.filepickerlibrary.picker.PickerUtils$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:2)
at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.java:418)
at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:375)
at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.java:793)
at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:164)
at android.app.Activity.dispatchActivityResult(Activity.java:8628)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5316)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5362)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
I try to pick the file, initially I feel some lacking issue.
First few attempts it's works.
But it crashed
Error log
E FATAL EXCEPTION: main Process: com.nareshchocha.filepicker, PID: 18763 java.lang.IllegalArgumentException: Unknown URI: content://downloads/public_downloads/87788 at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) at android.content.ContentProviderProxy.query(ContentProviderNative.java:418) at android.content.ContentResolver.query(ContentResolver.java:804) at android.content.ContentResolver.query(ContentResolver.java:753) at android.content.ContentResolver.query(ContentResolver.java:711) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDataColumn(FileUtils.kt:153) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getDownloadsDocumentPath(FileUtils.kt:116) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.pathFromURI(FileUtils.kt:35) at com.nareshchocha.filepickerlibrary.utilities.FileUtils.getRealPath(FileUtils.kt:21) at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:66) at com.nareshchocha.filepickerlibrary.ui.activitys.DocumentFilePickerActivity$selectFile$1.invoke(DocumentFilePickerActivity.kt:56) at com.nareshchocha.filepickerlibrary.picker.PickerUtils.selectFile$lambda$0(PickerUtils.kt:23) at com.nareshchocha.filepickerlibrary.picker.PickerUtils.$r8$lambda$5EjpwZuwUTQfOHixKEdyGZdAUG8(Unknown Source:0) at com.nareshchocha.filepickerlibrary.picker.PickerUtils$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:2) at androidx.activity.result.ActivityResultRegistry$1.onStateChanged(ActivityResultRegistry.java:149) at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:314) at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.kt:251) at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.kt:287) at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.kt:136) at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.kt:119) at androidx.lifecycle.ReportFragment$Companion.dispatch$lifecycle_runtime_release(ReportFragment.kt:192) at androidx.lifecycle.ReportFragment.dispatch(ReportFragment.kt:87) at androidx.lifecycle.ReportFragment.onStart(ReportFragment.kt:56) at android.app.Fragment.performStart(Fragment.java:2548) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1334) at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1581) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1642) at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3051) at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3008) at android.app.FragmentController.dispatchStart(FragmentController.java:193) at android.app.Activity.performStart(Activity.java:7264) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2970) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:201) at android.app.ActivityThread.main(ActivityThread.java:6810) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)