2016-01-08 1 views
-1

J'essaie de développer ma première application Android. C'est essentiellement un compteur de score. Mon idée est d'ajouter une fonctionnalité comme d'autres applications comme Wunderlist:Inviter et partager des données d'application entre les appareils Android

1) L'utilisateur A et l'utilisateur B ont l'application installée dans leurs appareils.

2) L'utilisateur A crée un score de jeu avec deux joueurs (stocké au format xml).

3) L'utilisateur A envoie une invitation à l'utilisateur B pour partager ce score (peut-être en utilisant son compte google).

4) L'utilisateur B reçoit l'invitation/la notification et l'accepte.

5) Les deux utilisateurs partagent le score, ils peuvent le changer, et le score est mis à jour dans les deux appareils à chaque fois qu'il est modifié, de sorte que les deux utilisateurs ont le même score.

6) Si le score est supprimé, l'application envoie une notification pour le supprimer dans l'autre appareil.

Dans l'application Wunderlist, par exemple, vous pouvez créer une liste et inviter quelqu'un à partager la liste. Il y a beaucoup d'applications Android, comme les applications de production, qui partagent les informations de cette façon.

¿Comment puis-je implémenter cela?

Merci d'avance.

+0

Vous pouvez partager des données en utilisant: connexion internet, bluetooth. ou connexion wifi LAN. Avec la connexion Internet, vous devez construire un module côté serveur pour recevoir et transférer des données. – GiapLee

+0

Découvrez [Firebase] (https://www.firebase.com/) - facile à mettre en œuvre le code côté client pour les mises à jour, etc. Sinon, vous pouvez mettre à jour par Bluetooth, etc. – yennsarah

Répondre

1

La question est très générale, mais je vais essayer d'obtenir des réponses aussi détaillées que possible. Tout d'abord, vous aurez besoin d'un serveur auquel chaque utilisateur se connectera. Vous pouvez créer une connexion entre des utilisateurs avec, par exemple, Bluetooth, mais cela ne fonctionne que sur une courte distance, comme vous le savez peut-être.

Réponse:

Tous les fichiers doivent être stockés dans le serveur, de sorte que vous pouvez envoyer à vos données du serveur au format JSON qui est très simple à mettre en œuvre. Ensuite, le serveur peut créer des notifications push à l'utilisateur que le premier utilisateur veut se connecter. L'idée principale est que chaque client doit créer une connexion avec le serveur afin de recevoir des notifications push. À mon humble avis, la meilleure solution dans ce cas est Google Cloud Messaging, qui envoie des données de serveur aux appareils des utilisateurs.

+0

ThisMartian got the gyst. Il y a beaucoup plus de complexité concernant ce problème de partage simple. Que faire si un utilisateur supprime le fichier en dehors de votre application sur son appareil? Que faire si les deux utilisateurs éditent le fichier en même temps? Que faire si l'utilisateur change le fichier sans connexion Internet? Tous ces problèmes sont simplifiés en ayant un fichier sur le serveur à utiliser comme point de référence. Ensuite, vous implémentez votre logique pour résoudre les cas spéciaux que j'ai mentionnés ci-dessus, mais l'idée de base est de toujours comparer le fichier utilisateur avec celui du serveur. – NitroNbg

+0

Je pense que Google Cloud Messaging est exactement ce que je cherchais. J'essaierai de chercher plus d'informations et d'exemples pour l'implémenter. L'idée de cette fonctionnalité est de l'utiliser quand je joue en ligne avec mes amis, et le score ne sera pas mis à jour fréquemment, donc bien que je sois clair que je dois implémenter une certaine logique pour ces cas, je pense qu'il t être une source de problèmes de carence. Si je peux le faire fonctionner, je vais mettre le code si cela peut aider quelqu'un. Merci beaucoup. – jgonzal

+0

C'est un détail, mais cela m'est venu à l'esprit. Solution rapide et simple pour les différentes étapes du fichier. Vous pouvez simplement ajouter au fichier un entier représentant la révision actuelle du fichier. Il peut s'agir d'un nombre entier auto-incrémenté et, de cette manière, vous pouvez comparer différents fichiers. –