У меня есть виджет с фоном с девятью патчами. Изображение было сохранено в /sdcard/mydir/bgs.
Когда я пытаюсь загрузить изображение с помощью метода setImageViewUri, у меня есть эта ошибка:
Unable to open content: file:///storage/emulated/0/sdcard/mydir/bgs
..
затем
...
open failed: EACCES (Permission denied)
Это отображается только на главном экране и только с Nexus 10 и Nexus 7 (с последней версией 4.4 этой ошибки не существует). У меня также есть RemoteView в моем приложении, и все работает правильно.
Я также добавил в манифест либо READ_EXTERNAL_STORAGE, либо WRITE_EXTERNAL_STORAGE.
Как я могу решить?
UPDATE: я проверяю метод setImageViewUri, и я обнаружил, что он меняет путь к моему файлу.
if (value != null) {
// Resolve any filesystem path before sending remotely
value = value.getCanonicalUri();
if (StrictMode.vmFileUriExposureEnabled()) {
value.checkFileUriExposed("RemoteViews.setUri()");
}
}
Этот метод получает мое значение (/sdcard/mydir/bgs) и изменяет его на (storage/emulated/0/sdcard/mydir/bgs). Но этот файл не существует в системе через adb.