我正在寻找一种使用objective-c访问我的kindle内容的方法。具体来说,我想:
- 列出设备上的文档
- 添加和删除文档
- 管理集合(添加和删除文档等)
我知道 Calibre 可以完成所有这些(以及更多),但它是用 Java 编写的。
这是我第一次尝试从 Cocoa 应用程序访问任何类型的设备。如果有人有任何想法或起点,我将不胜感激。
我正在寻找一种使用objective-c访问我的kindle内容的方法。具体来说,我想:
我知道 Calibre 可以完成所有这些(以及更多),但它是用 Java 编写的。
这是我第一次尝试从 Cocoa 应用程序访问任何类型的设备。如果有人有任何想法或起点,我将不胜感激。
您可能可以通过使用NSFileManager进行基本文件系统调用来解决问题,因为 Kindle 本身通常作为磁盘安装在/Volumes
. 然后,您可以通过这种方式提取文件元数据以获取书名、作者和资料。
编辑:@Peter Hosey 提出了一个很好的观点:
注意:不要假设所有安装的卷都在
/Volumes
. 管理员可以在任何地方挂载任何设备,fstab 可以设置为在特定位置挂载特定设备,Apple 可以从根本上改变文件系统布局。使用NSFileManager
'smountedVolumeURLsIncludingResourceValuesForKeys:options:
方法或磁盘仲裁来查找所有已安装的卷,无论它们在哪里。
不过,不确定管理收藏。这个插件为 Calibre 提供了支持,但它似乎被 Kindle Touch 破坏了。收藏似乎是 Kindle 专有的东西,可能存储在该collections.json
文件中。不过,听起来 Kindle Touch 改变了游戏规则,你将无法在上面管理收藏(除非亚马逊决定发布某种 SDK 来简化整个过程,但我不会屏住呼吸)。
Kindle Touch 将其收藏文件保存在/var/local/cc.db
,我打赌它是某种 SQLite 文件。可悲的是,您只能通过越狱 Kindle Touch 来实现它。这个工具听起来可能会给你一些见解,但由于这在 Touch 上发生了变化,你正在考虑根据设备类型为集合管理制作特殊情况。祝你好运(如果你正在制作一个基于 Cocoa 的 Kindle 管理器,我很乐意在完成后向你扔钱)!