2013-05-10 3 views
2

Я ищу способ получить доступ к содержимому моего Kindle, используя цель-c. В частности, я хотел бы:Доступ к содержимому Kindle через Objective C

  • Список документов на устройстве
  • Добавление и удаление документов
  • Управление коллекции (добавлять и удалять документы, и т.д ..)

Я знаю, что Caliber делает все это (и многое другое), но это на Java.

Это первый раз, когда я пытался получить доступ к устройству любого типа из приложения Cocoa. Если у кого-то есть идеи или отправные точки, я бы очень благодарен.

+2

Я бы подумал, что вы справитесь с вызовом файловой системы с помощью [NSFileManager] (http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/ Reference.html # // apple_ref/occ/cl/NSFileManager), так как сам Kindle обычно монтируется как диск в '/ Volumes'. Не уверен в управлении коллекциями - [этот плагин] (http://www.mobileread.com/forums/showthread.php?t=118635) дает поддержку Caliber для этого, но он выглядит сломанным с Kindle Touch. –

+0

Ах да, вижу. Я могу видеть документы на громкости и коллекцию.json, которая предположительно определяет коллекции на устройстве. Я начну расследование. Большое спасибо за Вашу помощь. – Jonno

+0

Конечно! Думаю, я отправлю это в качестве ответа, и если вы довольны этим, вы можете отметить это как принятый ответ. –

ответ

0

Возможно, вы можете получить базовые вызовы файловой системы с помощью NSFileManager, так как сам Kindle обычно устанавливается как диск в /Volumes. Затем вы можете вытащить метаданные файлов таким образом, чтобы получить названия книг и авторов и прочее.

Edit: @Peter Hosey приносит хороший момент:

Примечание: Не думайте, что все установленные объемы в /Volumes. Администраторы могут монтировать любое устройство в любом месте, fstab может быть настроен для монтирования определенного устройства в определенном месте, и Apple всегда может радикально изменить макет файловой системы. Используйте метод NSFileManagermountedVolumeURLsIncludingResourceValuesForKeys:options: или Disk Arbitration, чтобы найти все смонтированные тома, где бы они ни находились.

Не уверен в управлении коллекциями. This plugin дает поддержку Caliber для этого, но он выглядит сломанным Kindle Touch. Коллекции, похоже, являются собственностью Kindle, которые, вероятно, хранятся в этом файле collections.json. Похоже, что Kindle Touch изменила игру, и вы не сможете управлять коллекциями на ней (если Amazon не решит выпустить какой-то SDK, чтобы упростить весь процесс, но я бы не задерживал дыхание).

Kindle Touch хранит файл коллекций в /var/local/cc.db, который я ставлю в виде файла SQLite. К сожалению, вы можете добраться до него только джейлбрейком своего Kindle Touch. This tool похоже, что это может дать вам некоторое представление, но поскольку это изменилось на Touch, вы смотрите на создание специальных случаев для управления коллекциями на основе типа устройства. Удачи вам (если вы создаете менеджера Kindle из какао, я бы люблю, чтобы бросить деньги у вас, когда закончите)!

+1

Примечание. Не допускайте, чтобы все установленные тома находились в/Объемы.Администраторы могут монтировать любое устройство в любом месте, «fstab» может быть настроено для монтирования определенного устройства в определенном месте, и Apple всегда может радикально изменить макет файловой системы. Используйте NSFileManager 'mountVolumeURLsIncludingResourceValuesForKeys: options:' method или Disk Arbitration, чтобы найти все смонтированные тома, где бы они ни находились. –

+0

@Peter Hosey: спасибо! Я никогда не сталкивался с такой ситуацией; Я даже не подозревал, что это возможно (и название метода велико, не было уверенно, что это было). Проголосовало (и я изменю свой ответ). –

Смежные вопросы