2013-05-10 57 views
2

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

  • 列表中的设备上的文件
  • 添加和删除文件
  • 管理集合(添加和删除文件,等等。)

我知道, Caliber可以完成所有这些(还有更多),但是它使用Java。

这是我第一次尝试从Cocoa应用程序访问任何类型的设备。如果任何人有任何想法或出发点,我会非常感激。

+2

我想你会通过使用[NSFileManager]进行文件系统调用(http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/因为Kindle本身通常以'/ Volumes'的形式挂载为磁盘,所以它可以通过参考文献.html#// apple_ref/occ/cl/NSFileManager。不知道如何管理集合 - [这个插件](http://www.mobileread.com/forums/showthread.php?t=118635)为Calibre提供支持,但它看起来会被Kindle Touch打破。 – 2013-05-10 13:31:54

+0

啊,是的,我明白了。我可以看到kindle卷上的文档,以及据推测可以在设备上定义集合的collections.json。我会开始调查。非常感谢你的帮助。 – Jonno 2013-05-10 13:48:50

+0

当然!我想我会将其作为答案发布,如果您对此感到满意,可以将其标记为已接受的答案。 – 2013-05-10 15:23:44

回答

0

由于Kindle本身通常以/Volumes的形式安装为磁盘,因此您可以通过NSFileManager进行基本的文件系统调用。然后,您可以通过获取书名,作者和内容的方式提取文件元数据。

编辑:@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经理,我会完成后向你扔钱)!

+1

注意:不要认为所有安装的卷都在/卷中。管理员可以在任何地方安装任何设备,'fstab'可能被设置为在特定位置安装特定设备,Apple可以随时从根本上改变文件系统布局。使用NSFileManager的'mountedVolumeURLsIncludingResourceValuesForKeys:options:'方法或磁盘仲裁来查找所有已安装的卷,无论它们在哪里。 – 2013-05-10 21:12:08

+0

@彼得霍西:谢谢!我从来没有遇到过这种情况。我不知道这甚至是可能的(并且方法名称很棒;不知道它是什么)。投票(我会修改我的答案)。 – 2013-05-11 00:37:32