2013-05-10 4 views
2

Je cherche un moyen d'accéder au contenu de mon Kindle en utilisant l'objectif-c. Plus précisément, je voudrais:Accéder au contenu Kindle via Objective C

  • Liste des documents sur l'appareil
  • Ajouter et supprimer des documents
  • collections (Manage ajouter et supprimer des documents, etc ..)

Je sais que Calibre fait tout cela (et plus) mais c'est en Java.

C'est la première fois que j'essaie d'accéder à un appareil de n'importe quel type à partir d'une application Cocoa. Si quelqu'un a des idées ou des points de départ, je l'apprécierais vraiment.

+2

Je pense que vous seriez en train de faire des appels de système de fichiers avec [NSFileManager] (http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/ Reference.html # // apple_ref/occ/cl/NSFileManager), puisque le Kindle lui-même est généralement monté en tant que disque dans '/ Volumes'. Pas sûr de la gestion des collections - [ce plugin] (http://www.mobileread.com/forums/showthread.php?t=118635) donne le support de Caliber pour ce faire, mais il semble être rompu avec le Kindle Touch. –

+0

Ah oui, je vois. Je peux voir les documents sur le volume kindle, et collections.json qui définit sans doute les collections sur l'appareil. Je vais commencer à enquêter. Merci beaucoup pour votre aide. – Jonno

+0

Bien sûr! Je suppose que je vais poster comme une réponse, alors, et si vous êtes satisfait, vous pouvez le marquer comme la réponse acceptée. –

Répondre

0

Vous pouvez probablement vous en tirer avec des appels de système de fichiers de base avec NSFileManager, puisque le Kindle lui-même est généralement monté en tant que disque au /Volumes. Vous pouvez ensuite extraire les métadonnées de fichiers de cette manière pour obtenir des titres de livres, des auteurs et d'autres choses.

Modifier: @Peter Hosey apporte un bon point:

Note: Ne supposez pas que tous les volumes montés sont en /Volumes. Les administrateurs peuvent monter n'importe quel périphérique n'importe où, fstab peut être configuré pour monter un périphérique spécifique dans un endroit spécifique, et Apple pourrait toujours changer radicalement la disposition du système de fichiers. Utilisez NSFileManager méthode mountedVolumeURLsIncludingResourceValuesForKeys:options: ou Arbitrage disque pour trouver tous les volumes montés, où qu'ils soient.

Vous n'êtes pas sûr de gérer les collections, cependant. This plugin prend en charge Calibre pour ce faire, mais il semble être rompu avec le Kindle Touch. Les collections semblent être une propriété propriétaire de Kindle qui sont probablement stockées dans ce fichier collections.json. On dirait que le Kindle Touch a changé le jeu, et vous ne pourrez pas gérer les collections dessus (à moins qu'Amazon ne décide de sortir un SDK pour simplifier tout le processus, mais je ne retiens pas mon souffle).

Le Kindle Touch contient son fichier de collections au /var/local/cc.db, que je parie est une sorte de fichier SQLite. Malheureusement, vous ne pouvez y arriver qu'en jailbreakant votre Kindle Touch. This tool semble que cela puisse vous donner un aperçu, mais puisque cela a changé sur le Touch, vous cherchez à faire des cas spéciaux pour la gestion de la collection en fonction du type d'appareil. Bonne chance à vous (si vous faites un gestionnaire de Kindle à base de cacao, je voudrais aimer de jeter de l'argent à vous lorsque vous avez terminé)!

+1

Remarque: Ne supposez pas que tous les volumes montés se trouvent dans/Volumes.Les administrateurs peuvent monter n'importe quel périphérique n'importe où, 'fstab' peut être configuré pour monter un périphérique spécifique dans un endroit spécifique, et Apple pourrait toujours changer radicalement la disposition du système de fichiers. Utilisez la méthode 'mountedVolumeURLsIncludingResourceValuesForKeys: options:' de NSFileManager ou l'Arbitrage disque pour trouver tous les volumes montés, où qu'ils se trouvent. –

+0

@Peter Hosey: merci! Je n'ai jamais rencontré cette situation; Je n'avais aucune idée que c'était même possible (et un nom de méthode est génial, n'était pas sûr de ce que c'était). Up-voté (et je vais modifier ma réponse). –

Questions connexes