android - 从 Android 4.4 中的文件管理器访问文件显示异常

标签 android android-intent android-file file-manager

我正在开发一个 android 应用程序,在这个应用程序中,我从 android 的默认文件管理器访问一个文件。如果我在较低版本(Android 4.4 除外)中运行这个应用程序,我可以访问我的文件应用程序,但如果我使用 android 4.4 kitkat OS 运行我的应用程序,我无法从文件管理器访问文件,它显示了一些 Exceptions。在这里我附上了我的 LogCat 输出。

LogCat

06-03 15:59:34.127 W/System.err(14882): java.io.FileNotFoundException: /system/etc/vold.fstab: open failed: ENOENT (No such file or directory)
06-03 15:59:34.127 W/System.err(14882):     at libcore.io.IoBridge.open(IoBridge.java:409)
06-03 15:59:34.127 W/System.err(14882):     at java.io.FileInputStream.<init>(FileInputStream.java:78)
06-03 15:59:34.127 W/System.err(14882):     at java.util.Scanner.<init>(Scanner.java:158)
06-03 15:59:34.127 W/System.err(14882):     at java.util.Scanner.<init>(Scanner.java:138)
06-03 15:59:34.127 W/System.err(14882):     at com.ipaulpro.afilechooser.StorageOptions.readVoldFile(StorageOptions.java:81)
06-03 15:59:34.127 W/System.err(14882):     at com.ipaulpro.afilechooser.StorageOptions.determineStorageOptions(StorageOptions.java:21)
06-03 15:59:34.127 W/System.err(14882):     at com.ipaulpro.afilechooser.FileChooserActivity.onCreate(FileChooserActivity.java:348)
06-03 15:59:34.127 W/System.err(14882):     at com.wepanow.MyFileChooserActivity.onCreate(MyFileChooserActivity.java:24)
06-03 15:59:34.127 W/System.err(14882):     at android.app.Activity.performCreate(Activity.java:5231)
06-03 15:59:34.127 W/System.err(14882):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
06-03 15:59:34.127 W/System.err(14882):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
06-03 15:59:34.127 W/System.err(14882):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
06-03 15:59:34.127 W/System.err(14882):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
06-03 15:59:34.127 W/System.err(14882):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
06-03 15:59:34.127 W/System.err(14882):     at android.os.Handler.dispatchMessage(Handler.java:102)
06-03 15:59:34.127 W/System.err(14882):     at android.os.Looper.loop(Looper.java:136)
06-03 15:59:34.127 W/System.err(14882):     at android.app.ActivityThread.main(ActivityThread.java:5017)
06-03 15:59:34.127 W/System.err(14882):     at java.lang.reflect.Method.invokeNative(Native Method)
06-03 15:59:34.127 W/System.err(14882):     at java.lang.reflect.Method.invoke(Method.java:515)
06-03 15:59:34.127 W/System.err(14882):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-03 15:59:34.127 W/System.err(14882):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-03 15:59:34.127 W/System.err(14882):     at dalvik.system.NativeStart.main(Native Method)
06-03 15:59:34.127 W/System.err(14882): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
06-03 15:59:34.127 W/System.err(14882):     at libcore.io.Posix.open(Native Method)
06-03 15:59:34.127 W/System.err(14882):     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
06-03 15:59:34.127 W/System.err(14882):     at libcore.io.IoBridge.open(IoBridge.java:393)
06-03 15:59:34.127 W/System.err(14882):     ... 21 more



06-03 15:59:39.012 E/wepa    (14882): File select error
06-03 15:59:39.012 E/wepa    (14882): java.lang.NullPointerException
06-03 15:59:39.012 E/wepa    (14882):   at java.io.File.fixSlashes(File.java:185)
06-03 15:59:39.012 E/wepa    (14882):   at java.io.File.<init>(File.java:134)
06-03 15:59:39.012 E/wepa    (14882):   at com.ipaulpro.afilechooser.FileChooserActivity.onActivityResult(FileChooserActivity.java:453)
06-03 15:59:39.012 E/wepa    (14882):   at android.app.Activity.dispatchActivityResult(Activity.java:5423)
06-03 15:59:39.012 E/wepa    (14882):   at android.app.ActivityThread.deliverResults(ActivityThread.java:3361)
06-03 15:59:39.012 E/wepa    (14882):   at android.app.ActivityThread.handleSendResult(ActivityThread.java:3408)
06-03 15:59:39.012 E/wepa    (14882):   at android.app.ActivityThread.access$1300(ActivityThread.java:135)
06-03 15:59:39.012 E/wepa    (14882):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
06-03 15:59:39.012 E/wepa    (14882):   at android.os.Handler.dispatchMessage(Handler.java:102)
06-03 15:59:39.012 E/wepa    (14882):   at android.os.Looper.loop(Looper.java:136)
06-03 15:59:39.012 E/wepa    (14882):   at android.app.ActivityThread.main(ActivityThread.java:5017)
06-03 15:59:39.012 E/wepa    (14882):   at java.lang.reflect.Method.invokeNative(Native Method)
06-03 15:59:39.012 E/wepa    (14882):   at java.lang.reflect.Method.invoke(Method.java:515)
06-03 15:59:39.012 E/wepa    (14882):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-03 15:59:39.012 E/wepa    (14882):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-03 15:59:39.012 E/wepa    (14882):   at dalvik.system.NativeStart.main(Native Method)
06-03 15:59:39.012 D/ChooserActivity(14882): Intent Action: null
06-03 15:59:39.012 I/wepa    (14882): FileChooser > onResume
06-03 15:59:39.012 I/wepa    (14882): FC (onResume)has Extra:false
06-03 15:59:39.012 I/wepa    (14882): FC (onResume)has Extra:false
06-03 15:59:39.022 V/PhoneStatusBar(660): setLightsOn(true)
06-03 15:59:43.826 D/wepa    (14882): File selections canceled

最佳答案

I am accessing a file from android's default file manger

Android 没有文件管理器。

if I runned my app with android 4.4 kitkat OS I couldn't access a file from file manager it showed some Exceptions

显然,您没有对该设备上的 /system/etc/vold.fstab 的读取权限。没有要求普通 SDK 应用程序可以在所有设备上读取此文件,Android 4.4.x 已逐步加强对文件系统访问的安全性。

关于android - 从 Android 4.4 中的文件管理器访问文件显示异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24060901/

相关文章:

android - 有没有办法从android获取唯一的设备ID

android - 这是 ExifInterface 中的错误吗?

android - 如何在 Android 的内部缓存目录中创建图像文件

Android 图像共享 Intent - 如何从列表中排除特定的处理程序?

android - 为什么 Messenger 应用程序会在应用程序强制停止时收到消息?

android - 如何在 Android 中以编程方式将图像文件从图库复制到另一个文件夹

java - 尝试为具有待处理请求的 session 请求新权限。Android

android ContextCompat.checkSelfPermission() 未找到

来自代码的 Android 屏幕截图。明白但不完美

android - 从 Android 中的库项目调用应用程序 Activity