我正在开发一个 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/