Beim Zugriff auf eine Datei über den Dateimanager in Android 4.4 wird eine Ausnahme angezeigt
-
26-12-2019 - |
Frage
Ich entwickle eine Android-Anwendung. In dieser App greife ich über die Standardeinstellungen von Android auf eine Datei zu file manger
.Wenn ich diese App in niedrigeren Versionen (außer Android 4.4) ausführe, kann ich auf Dateien in meiner Anwendung zugreifen, aber wenn ich meine App mit ausgeführt habe android 4.4
kitkat OS Ich konnte über den Dateimanager nicht auf eine Datei zugreifen, es wurden einige angezeigt Exceptions
.Hier habe ich meine LogCat-Ausgabe angehängt.
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
Lösung
Ich greife über den Standard-Dateimanager von Android auf eine Datei zu
Android verfügt nicht über einen Dateimanager.
Wenn ich meine App mit Android 4.4 Kitkat OS ausgeführt habe, konnte ich über den Dateimanager nicht auf eine Datei zugreifen, es wurden einige Ausnahmen angezeigt
Sie haben keinen Lesezugriff auf /system/etc/vold.fstab
Anscheinend auf diesem Gerät.Es besteht keine Anforderung, dass diese Datei auf allen Geräten von normalen SDK-Apps gelesen werden kann, und Android 4.4.x hat die Sicherheit beim Zugriff auf das Dateisystem schrittweise verschärft.