Я хочу загрузить скрытый файл во внутреннее хранилище, но не могу, потому что он скрыт. Как мне это показать? - PullRequest
0 голосов
/ 18 февраля 2012

Файл находится где-то в папках data / data / appfolder / sharedprefs /, но эти файлы кажутся скрытыми людям, которые не создавали приложение.

Я хочу загрузить файл в Dropbox, но не могу, потому что, как я уже сказал, файл кажется скрытым в Dropbox. Как я могу изменить права доступа к файлу, чтобы он больше не был скрыт и я мог загрузить его в Dropbox?

Моему приложению, вероятно, понадобятся права доступа root. Я хочу загрузить файл, используя Dropbox API для резервного копирования и восстановления. Обычно я просто указываю на путь к файлу, и он загружает его, но он дает мне ошибку "файл не найден" с этими файлами.

Спасибо

1 Ответ

0 голосов
/ 18 февраля 2012

Дело не в том, что оно скрыто, а в том, что другие приложения не имеют разрешения на доступ к файлам вашего приложения.Это хорошая вещь!Это означает, что ваше приложение может быть привратником, который предоставляет доступ к этим файлам по мере необходимости.Вам не нужны или не требуются права доступа root в приложении с хорошим поведением.

Правильный способ предоставить файл другому приложению для использования в таких вещах, как целевые URI ACTION_SEND, - написать простое ContentProvider.Если вы просто предоставляете простой доступ только для чтения к файлу и вам не нужен ContentProvider для запроса, это намного проще, чем кажется.

Два метода ContentProvider, которые вам понадобятсяорудия являются getType и openFile.В openFile вы можете принудительно установить ограничения доступа для своего приложения, а затем вернуть ParcelFileDescriptor в файл.

...