7

“图片地图”之类的 iPhone 应用程序可以访问我 iPhone 相册中的所有照片并显示它们,而无需显示图像选择器控件。

有谁知道这是怎么做到的?

谢谢G

4

2 回答 2

6

这是一个旧线程,但我会回答,因为我是编写和发布图片地图的人!

Thomas 是对的,我正在访问 DCIM 文件夹以解析每个文件(从 EXIF 结构中获取其位置并访问缩略图)。

由于应用程序无权访问其沙箱之外的文件,Apple 要求我从 AppStore 中删除该应用程序......无论如何,从 iOS 4.0 开始,应用程序无法再访问 DCIM 文件夹了!

我确实重写了应用程序以使用 ALAsset 类并以“图片地图”的名义再次发布!源代码也可以在这里找到:https ://github.com/sylverb/Picture-Map

于 2011-08-01T12:07:39.730 回答
2

我相信我知道发生了什么:

iPhone 上有两个独立的照片集:

  1. iPhoto 相册,从 Mac 上的 iPhoto 应用程序同步。
  2. 用 iPhone 相机拍摄的照片。

普通应用程序无法访问 iPhoto 相册(假设我们在这里不是在谈论越狱设备) - 应用程序只能请求用户手动选择图片。

但是,相机拍摄的照片最终会与其他数据一起在所有应用程序之间共享的“DCIM”文件夹中。如果您使用 Mac 应用程序“iPhone Explorer”,您可以看到所有这些(我相信 Windows 也有类似的应用程序)。

因此,虽然我自己从未尝试过“图片地图”,但我怀疑它只是访问了这个 DCIM 文件夹。

...

哦,等等……我刚刚用 iPhone Explorer 查看了我 iPad 的共享文件夹(/var/mobile/Media),发现那里不仅有 DCIM 文件夹,还有一个 Photos 文件夹,其中包含一个“照片数据库” ,就像在 Mac 上一样。哇,这很有趣……这可能意味着“图片映射”实际上直接读取了这个 DB 文件。它已经在 Mac 上完成,我怀疑 iPhone OS 上的文件格式也没有太大的不同。

这是否回答你的问题?

于 2010-05-14T21:32:56.297 回答