“图片地图”之类的 iPhone 应用程序可以访问我 iPhone 相册中的所有照片并显示它们,而无需显示图像选择器控件。
有谁知道这是怎么做到的?
谢谢G
这是一个旧线程,但我会回答,因为我是编写和发布图片地图的人!
Thomas 是对的,我正在访问 DCIM 文件夹以解析每个文件(从 EXIF 结构中获取其位置并访问缩略图)。
由于应用程序无权访问其沙箱之外的文件,Apple 要求我从 AppStore 中删除该应用程序......无论如何,从 iOS 4.0 开始,应用程序无法再访问 DCIM 文件夹了!
我确实重写了应用程序以使用 ALAsset 类并以“图片地图”的名义再次发布!源代码也可以在这里找到:https ://github.com/sylverb/Picture-Map
我相信我知道发生了什么:
iPhone 上有两个独立的照片集:
普通应用程序无法访问 iPhoto 相册(假设我们在这里不是在谈论越狱设备) - 应用程序只能请求用户手动选择图片。
但是,相机拍摄的照片最终会与其他数据一起在所有应用程序之间共享的“DCIM”文件夹中。如果您使用 Mac 应用程序“iPhone Explorer”,您可以看到所有这些(我相信 Windows 也有类似的应用程序)。
因此,虽然我自己从未尝试过“图片地图”,但我怀疑它只是访问了这个 DCIM 文件夹。
...
哦,等等……我刚刚用 iPhone Explorer 查看了我 iPad 的共享文件夹(/var/mobile/Media),发现那里不仅有 DCIM 文件夹,还有一个 Photos 文件夹,其中包含一个“照片数据库” ,就像在 Mac 上一样。哇,这很有趣……这可能意味着“图片映射”实际上直接读取了这个 DB 文件。它已经在 Mac 上完成,我怀疑 iPhone OS 上的文件格式也没有太大的不同。
这是否回答你的问题?