В доступе отказано, когда я пытаюсь прочитать изображение в папке пакета из моего виджета (Android) - PullRequest
0 голосов
/ 21 октября 2011

У меня есть приложение со встроенным виджетом, и я пытаюсь прочитать изображение из папки моего пакета (/data/data/com.package.name/pic.jpg) через мой виджет, но когда я пытаюсь чтобы прочитать его, я получаю «Отказано в доступе» в logcat. file.canRead () возвращает true, поэтому я не совсем уверен, что здесь не так. Разве не разрешено читать из папки пакета через виджет? Нужно ли создавать образ на SDCard, чтобы иметь возможность прочитать его, или есть другой способ? Я бы предпочел прочитать его из папки с пакетом, но, похоже, он не работает. Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 21 октября 2011

Я собираюсь предположить, что под «виджетом» вы действительно подразумеваете «виджет приложения». Если мое предположение неверно, пожалуйста, игнорируйте этот ответ. : -)

На главном экране должна быть возможность прочитать изображение. Главный экран работает в своем собственном процессе и не имеет прав ни на один из ваших файлов.

Разве не разрешено чтение из папки пакета через виджет?

На домашнем экране запрещено читать из файлов вашего приложения. Так что, если вы используете setImageViewUri() с file:// Uri, это будет вашей проблемой.

Нужно ли создавать образ на SD-карте, чтобы можно было его прочитать, или есть другой способ?

Внешнее хранилище будет одним из решений. Другой способ - создать файл, используя openFileOutput(), используя MODE_WORLD_READABLE. Еще одним будет создание крошечного ContentProvider и использование content:// Uri.

...