【问题标题】:Access Kindle contents via Objective C通过 Objective C 访问 Kindle 内容
【发布时间】:2013-05-10 13:28:05
【问题描述】:

我正在寻找一种使用objective-c 访问我的kindle 内容的方法。具体来说,我想:

  • 列出设备上的文档
  • 添加和删除文档
  • 管理集合(添加和删除文档等)

我知道 Calibre 可以完成所有这些(以及更多),但它是用 Java 编写的。

这是我第一次尝试从 Cocoa 应用程序访问任何类型的设备。如果有人有任何想法或起点,我将不胜感激。

【问题讨论】:

  • 我认为你可以通过NSFileManager 进行文件系统调用,因为Kindle 本身通常作为磁盘安装在/Volumes 中。不确定管理收藏——this plugin 为 Calibre 提供了支持,但 Kindle Touch 似乎破坏了它。
  • 啊,是的,我明白了。我可以看到 kindle 卷上的文档,以及可能定义设备上的集合的 collections.json。我要开始调查了。非常感谢您的帮助。
  • 当然!我想我会将其作为答案发布,如果您对此感到满意,可以将其标记为已接受的答案。

标签: objective-c cocoa kindle


【解决方案1】:

你可以通过NSFileManager 进行基本的文件系统调用,因为Kindle 本身通常作为磁盘安装在/Volumes 中。然后,您可以通过这种方式提取文件元数据以获取书名、作者和资料。

编辑:@Peter Hosey 提出了一个很好的观点:

注意:不要假设所有已安装的卷都在/Volumes 中。管理员可以在任何地方挂载任何设备,fstab 可以设置为在特定位置挂载特定设备,Apple 总是可以从根本上改变文件系统布局。使用NSFileManagermountedVolumeURLsIncludingResourceValuesForKeys:options: 方法或磁盘仲裁来查找所有已安装的卷,无论它们在哪里。

但不确定是否管理收藏。 This plugin 为 Calibre 提供了支持,但 Kindle Touch 似乎破坏了它。收藏似乎是 Kindle 专有的东西,可能存储在 collections.json 文件中。不过,听起来 Kindle Touch 改变了游戏规则,你将无法在上面管理收藏(除非亚马逊决定发布某种 SDK 来简化整个过程,但我不会屏住呼吸)。

Kindle Touch 的收藏文件位于/var/local/cc.db,我敢打赌这是某种 SQLite 文件。可悲的是,您只能通过越狱 Kindle Touch 来实现它。 This tool 听起来可能会给你一些见解,但由于这在 Touch 上发生了变化,你正在考虑根据设备类型为集合管理制作特殊案例。祝你好运(如果你正在制作一个基于 Cocoa 的 Kindle 管理器,我会喜欢在完成后向你扔钱)!

【讨论】:

  • 注意:不要假设所有挂载的卷都在 /Volumes 中。管理员可以在任何地方挂载任何设备,fstab 可以设置为在特定位置挂载特定设备,Apple 可以从根本上改变文件系统布局。使用 NSFileManager 的mountedVolumeURLsIncludingResourceValuesForKeys:options: 方法或磁盘仲裁来查找所有已挂载的卷,无论它们在哪里。
  • @Peter Hosey:谢谢!我从来没有遇到过这种情况;我什至不知道这是可能的(而且方法名称很棒;不确定它是什么)。投票赞成(我会修改我的答案)。
猜你喜欢
  • 2011-01-16
  • 2015-05-12
  • 2012-02-29
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
相关资源
最近更新 更多