无法在Android手机上找到从AIR应用程序导出的图像

时间:2013-05-02 02:37:18

标签: actionscript-3 air

我觉得我在这里遗漏了一些非常基本的东西。我正在尝试添加一个选项,以便以PNG格式从Android应用导出图像。代码似乎在我的Droid Bionic上工作正常并且没有错误,但之后我无法在手机存储中的任何地方找到图像。它在哪里?是否可以访问从AIR应用程序导出的图像?我错过了一些完全明显的东西吗?

bdToSave.draw(screenshot);
var arrBytes:ByteArray = PNGEncoder.encode(bdToSave);
var file:File = File.desktopDirectory.resolvePath("testimage.png");
var fileStream:FileStream = new FileStream();

try {
    fileStream.open(file, FileMode.WRITE);
    fileStream.writeBytes(arrBytes);
    fileStream.close();
}
catch (errObject:Error) {
    Env.outBox.text = "Error writing image file!"
}

我还使用CameraRoll类成功导出图像并轻松找到生成的文件,但那里的图像似乎使用了错误的JPEG压缩。所以我希望使用FileStream会产生更好的图像。

1 个答案:

答案 0 :(得分:0)

Android上不存在

File.desktopDirectory。使用File.applicationDirectoryFile.applicationStorageDirectory写入内部磁盘。您几乎总是想要使用applicationStorageDirectory,我相信这实际上是您可以在iOS上用于编写数据的唯一。对于写入外部驱动器,这是我未经测试的,我相信你想使用File.documentsDirectory。追踪File.documentsDirectory.nativePath以验证该路径是否正确。

认为现在发布的大多数高端手机包含SD卡可能是明智的。如果这是一个大众市场产品,我建议改用applicationStorageDirectory。