【发布时间】:2014-09-01 11:16:13
【问题描述】:
在 Android 4+ 上使用 Titanium 我想访问用相机拍摄的 jpeg 文件。我需要实现 2 个目标,即返回 EXIF 数据并将字节传输到 API 端点。我的问题是我无法访问该文件...
我正在使用第 3 方模块来处理返回文件位置列表的文件选择(多图像选择器),使用模拟器上的文件管理器应用程序 (GenyMotion) 我可以确认磁盘上的位置是正确的。但是,以下总是返回 false...
var file = Ti.Filesystem.getFile('/mnt/sdcard/DCIM/Camera/IMG_20140901_083735.jpg');
Ti.API.info('Do we have a file? ' (file.exists()? 'YES' : 'NO'));
上面的输出将是...... 我们有文件吗?没有
进一步阅读显示 Titanium 有 5 个预定义的文件夹位置,它们可以传递到 getFile() 方法中,上述代码不起作用的一个可能原因是它默认为“Resouces”文件夹位置?也就是说,除一个文件夹位置外,所有文件夹位置都是特定于应用程序的,externalStorageLocation 除外。现在我对 Android 设备的理解是,除非存在 SD 卡,否则使用相机拍摄的任何图像都将存储在内部存储系统中。在我的情况下确实如此,因为以下列出了 0 个文件...
var extDir = Ti.Filesystem.getExternalStorageDirectory();
var dir = Ti.Filesystem.getFile(extDir);
var dir_files = dir.getDirectoryListing();
Ti.API.info('External files... ' + dir_files.length);
上面的输出将是... 外部文件... 0
所以我认为 Appcelerator 根本没有在其 API 中包含访问本地存储(在任何应用特定文件夹之外)的能力是正确的吗?还是我错过了什么,实际上还有另一种方式?
【问题讨论】:
标签: android titanium android-camera appcelerator appcelerator-mobile