2013-05-10 65 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