6 votes

Fournisseur de contenus avec un service Web comme source

Le scénario est le suivant:

  • J'ai une application Android qui se compose essentiellement d'une carte.
  • Cette application interroge divers services web tels que Foursquare ou Wikipedia pour obtenir une liste de lieux et les afficher sur la carte.

La question,

  • Est-ce que quelqu'un sait comment construire un Content Provider où la source de données est un service web (comme ceux mentionnés ci-dessus) et non une base de données? Ce serait génial si vous pouviez me diriger dans la bonne direction.

Merci!

1voto

Chruegel Points 11

J'étais à la recherche de la même chose que vous et je suis tombé sur DataDroid http://www.datadroidlib.com/. Je pense que c'est plus facile à utiliser et c'est une façon directe de gérer REST si votre webservice est orienté REST.

Éditer :

DataDroid est maintenant marqué comme obsolète. Ils ont migré vers Robospice, voir https://github.com/stephanenicolas/robospice

1voto

stilkin Points 79

Est-ce que quelqu'un sait comment construire un fournisseur de contenu où la source de données est un service web (comme ceux mentionnés ci-dessus) et non une base de données?

Prenez en compte que la réponse suivante peut être considérée comme une méthode plutôt ancienne et "manuelle".

Vous pourriez construire un fournisseur de contenu qui interroge le service web, et convertit le résultat obtenu en un curseur.

Pour interroger le service web, vous pourriez utiliser HttpClient et une requête HttpGet. Vous pouvez trouver un tutoriel sur MyKong sur la façon de le faire. Il existe également quelques alternatives plus récentes pour le faire.

Lors de l'analyse du résultat de recherche obtenu depuis le service web, vous pouvez construire votre propre curseur avec la classe MatrixCursor en ajoutant des lignes avec addRow() pour chaque résultat individuel.

Si vous deviez le faire, assurez-vous que vous appelez toujours votre fournisseur de contenu à travers un thread d'arrière-plan (c'est-à-dire en utilisant CursorLoader, AsyncTask, ou une autre forme de threading), sinon votre opération réseau finirait sur le thread principal de l'UI.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X