Ich habe ein Widget mit neun-Patch-Bildhintergrund. Das Bild wurde in/sdcard/mydir/bgs gespeichert.Android - Inhalt kann nicht geöffnet werden: file: /// storage/emuliert/0
Wenn ich versuche, ein Bild mit setImageViewUri Methode zu laden, habe ich diesen Fehler:
Unable to open content: file:///storage/emulated/0/sdcard/mydir/bgs
..
dann
...
open failed: EACCES (Permission denied)
Diese erscheint nur auf dem Startbildschirm und nur mit Nexus 10 und Nexus 7 (mit aktuellem Launcher 4.4 ist dieser Fehler nicht möglich existieren). Ich habe auch einige RemoteViews in meiner Anwendung und alles funktioniert korrekt.
Ich habe auch entweder READ_EXTERNAL_STORAGE, entweder WRITE_EXTERNAL_STORAGE in Manifest hinzugefügt.
Wie kann ich lösen?
UPDATE: Ich habe die Methode setImageViewUri untersucht und ich habe festgestellt, dass es den Pfad meiner Datei ändert.
if (value != null) {
// Resolve any filesystem path before sending remotely
value = value.getCanonicalUri();
if (StrictMode.vmFileUriExposureEnabled()) {
value.checkFileUriExposed("RemoteViews.setUri()");
}
}
Diese Methode mein Wert erhalten (/ sdcard/mydir/BGS) und Veränderungen, die sie in (Lagerung/emulierten/0/sdcard/mydir/BGS). Diese Datei existiert jedoch nicht über adb im System.
Teilen Sie Ihren Code und auch Ihre vollständige Logcat Ausgabe veröffentlichen. –