我正在尝试使用Titanium Mobile通过手机的电子邮件客户端发送文件作为附件。我在发送附件的地方遇到了一个障碍,但以 0 字节文件的形式接收。
问题是在data/data/package/app_appdata
中创建的文件-rw------
从看一眼Android SDK来看,这是设计使然。应用程序的"专用存储"只能由该文件夹的所有者(正在运行的应用程序)读取。我假设Android电子邮件客户端可以看到该文件,但无法读取它。
完整的Android SDK提到了一个MODE_WORLD_WRITABLE,它允许您继续使用applicationDataDirectory,并授予所有应用程序读取/写入该文件的权限。钛移动中是否存在等效物?
另一种解决方案是创建一个临时文件,不幸的是,该文件使用Titanium自己的命名方案(tiXXXXX.txt),或者我可以写入"外部存储",因为它是公共的(但是可能并不总是可用)。
这是我用来获取当前文件的调用,它可以在我的应用程序中读取就可以了,但是当我使用emailDialog
的addAttachment
调用时,它只是向我发送一个 0 字节的文件。
var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, "generated_filename.txt")
您是否尝试过改用tempDirectory
。我当然假设一旦文件通过电子邮件发送,您就不需要保留它,因为applicationDataDirectory
已完全备份并且通常用于存储应用程序保留的数据。
http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Filesystem.tempDirectory-property.html