Изменение разрешений для файла из applicationDataDirectory в Titanium Mobile - PullRequest
1 голос
/ 08 мая 2011

Я пытаюсь отправить файл в виде вложения через почтовый клиент телефона с помощью Titanium Mobile.Я столкнулся с ошибкой, когда вложение отправляется, но принимается в виде 0-байтового файла.

Проблема в том, что файл, созданный в data/data/package/app_appdata, имеет значение -rw------

Судя по взгляду на Android SDK, это дизайн.«Личное хранилище» приложения доступно для чтения только владельцу этой папки, работающему приложению.Я предполагаю, что почтовый клиент Android может видеть этот файл, но не может его прочитать.

В полном Android SDK упоминается MODE_WORLD_WRITABLE, который позволяет вам продолжать использовать applicationDataDirectory и давать всем приложениям разрешение на чтение / запись этогофайл.Существует ли аналог в Titanium Mobile?

Другое решение заключается в создании временного файла, который, к сожалению, использует собственную схему именования Titanium (tiXXXXX.txt), или я мог бы записать в «внешнее хранилище», так как оноpublic (который может быть не всегда доступен, однако.)

Это вызов, который я использую для получения текущего файла, его можно прочитать в моем приложении просто отлично, но когда я использую addAttachmentвызов emailDialog просто отправляет мне 0 байтовый файл.

var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, "generated_filename.txt")

1 Ответ

1 голос
/ 09 мая 2011

Вы пытались использовать tempDirectory вместо этого. Я, конечно, предполагаю, что после отправки файла по электронной почте вам не нужно его хранить, поскольку applicationDataDirectory полностью резервируется и обычно используется для хранения данных, сохраняемых приложением.

http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Filesystem.tempDirectory-property.html

...