Android où mes données d'applications stockées

Ajout de jeux enregistrés à votre jeu Android

Ce guide vous montre comment utiliser l'API Saved Games dans une application Android. L'API peut être trouvé dans le package com.google.android.gms.games.snapshot.

Avant que tu commences

Si vous ne l'avez pas déjà fait, vous trouverez peut-être utile de revoir les parties sauvegardées jeu concepts.

Android où mes données d'applications stockées

Avant de commencer à coder en utilisant l'API Saved Games:

Une fois que le joueur est signé et le GoogleApiClient est connecté, votre jeu peut commencer à utiliser l'API Saved Games.

Affichage des jeux enregistrés

Vous pouvez intégrer l'API Saved Games où votre jeu offre aux joueurs la possibilité de sauvegarder ou de restaurer leurs progrès. Votre jeu peut afficher une telle option à désignée sauvegarde / points de restauration ou de permettre aux joueurs de sauvegarder ou de restaurer des progrès à tout moment.

ads

Une fois que les joueurs choisissent l'option sauvegarder / restaurer dans votre jeu, votre jeu devrait faire apparaître un écran qui invite les joueurs à entrer des informations pour un nouveau jeu enregistré ou sélectionner une partie sauvegardée existante à restaurer. Pour simplifier votre développement, l'API Saved Games fournit une interface utilisateur de sélection par défaut enregistrés Jeux (IU) que vous pouvez utiliser de la boîte-out. La sélection UI Saved Games permet aux joueurs de créer un nouveau jeu enregistré, voir les détails sur les jeux enregistrés existants, et de charger les sauvegardes précédentes.

Pour faire apparaître le défaut Saved Games UI:

  1. Appelez getSelectSnapshotIntent () pour obtenir une intention pour le lancement de la valeur par défaut Saved Games sélection UI. Dans l'appel de méthode, vous pouvez définir des valeurs booléennes dans les paramètres allowAddButton et AllowDelete pour indiquer si votre jeu veut l'interface utilisateur pour fournir des boutons pour créer un nouveau jeu enregistré ou supprimer les sauvegardes existantes.
  2. Appelez startActivityForResult () et passer dans cette intention. Si l'appel est réussi, le jeu affiche la sélection UI Saved jeu, ainsi que les options spécifiées.

L'extrait suivant montre comment mettre en place l'interface utilisateur par défaut de sélection jeux enregistrés:

Si le joueur choisit de créer un nouveau jeu enregistré ou charger une partie sauvegardée existante, l'interface utilisateur envoie une requête à Google Play Service de jeux. Si la demande est acceptée, les services Google Play jeux retourne un objet Snapshot représentant le jeu enregistré à votre jeu grâce à la fonction de rappel onActivityResult (). Votre jeu peut remplacer ce rappel pour vérifier si des erreurs se sont produites lors de la demande.

Le code suivant montre une mise en œuvre de onActivityResult () Extrait:

Rédaction Jeux sauvegardées

Pour stocker le contenu à une partie sauvegardée, votre jeu doit obtenir une référence à un objet Snapshot puis appeler open () pour obtenir l'accès à modifier son contenu. Vous pouvez stocker les données d'un lecteur au format d'octet en appelant writeBytes ().

Une fois que toutes vos modifications sont apportées au contenu ou des métadonnées de la partie sauvegardée, appelez commitAndClose () pour envoyer vos modifications aux serveurs de Google. Dans l'appel de méthode, votre jeu peut associer des informations supplémentaires à dire les services Google Play Jeux comment présenter ce jeu sauvé aux joueurs. Cette information est représentée dans un objet SnapshotMetaDataChange, que votre jeu crée en utilisant SnapshotMetadataChange.Builder.

L'extrait suivant montre comment votre jeu pourrait commettre des modifications à une partie sauvegardée:

Si l'appareil du joueur est pas connecté à un réseau lorsque votre application appelle commitAndClose (). Google Play services de jeux stocke les données de jeu enregistrées localement sur le périphérique. Sur l'appareil re-connexion, Google Play services de jeux synchronise les mises en cache localement enregistrés changements de jeu aux serveurs de Google.

Chargement Jeux sauvegardées

Pour récupérer tous les jeux enregistrés pour le joueur actuellement connectés, appelez la méthode load ().

Votre jeu peut également récupérer une partie sauvegardée spécifique à travers la sélection UI du joueur, comme décrit dans Affichage Saved Games. Le jeu sauvé retourné est représenté comme un instantané. lequel votre jeu peut alors ouvrir à lire son contenu et les métadonnées.

Pour améliorer les performances de votre jeu, vous êtes encouragés à effectuer le chargement du jeu sauvé comme une opération d'arrière-plan plutôt que dans le thread principal. Une façon de faire est d'utiliser un AsyncTask et remplacer sa méthode doInBackground () pour ouvrir la partie sauvegardée.

L'extrait suivant montre comment vous pouvez mettre en œuvre le AsyncTask pour charger une partie sauvegardée spécifique:

Gestion des conflits de jeu enregistrés

Lorsque vous utilisez le service de jeux enregistrés dans votre jeu, il est possible pour plusieurs appareils pour effectuer les lectures et écritures sur le même jeu enregistré. Dans le cas où un dispositif perd temporairement sa connexion réseau et reconnecte plus tard, cela pourrait provoquer des conflits de données de sorte que le jeu enregistré stocké sur l'appareil local d'un joueur est hors de synchronisation avec la version à distance stockées dans les serveurs de Google. Les services Jeux sauvegardées fournit un mécanisme de résolution des conflits qui présente les deux ensembles de conflit jeux enregistrés à lecture-temps et vous permet de mettre en œuvre une stratégie de résolution qui est approprié pour votre jeu.

Lorsque Google Play services de jeux détecte un conflit de données, il notifie votre jeu lors d'un match opération d'ouverture enregistrée en retournant un code de STATUS_SNAPSHOT_CONFLICT d'état. Dans ce cas, l'OpenSnapshotResult propose deux versions du jeu enregistré:

  • La version la plus-up-to-date connue par Google Play services de jeux pour être précis; et
  • Une version modifiée détectée sur l'un des dispositifs du joueur qui contient du contenu ou des métadonnées contradictoires. Cela peut ne pas être la même que la version que vous avez essayé de sauver.

Votre jeu doit décider comment résoudre le conflit en choisissant l'une des versions fournies ou de fusionner les données des deux versions de jeu enregistrées.

Pour détecter et résoudre les conflits de jeu enregistrés, procédez comme suit:

  1. Appelez Snapshots.open (). Si STATUS_SNAPSHOT_CONFLICT est retourné, vous avez un conflit à résoudre.
  2. Appelez OpenSnapshotResult.getConflictId () pour récupérer l'ID du conflit qui identifie de manière unique le conflit détecté. Votre jeu a besoin de cette valeur pour envoyer une demande de résolution de conflits plus tard.
  3. Appelez getConflictingSnapshot () pour obtenir la version modifiée.
  4. Appelez getSnapshot () pour obtenir la version du serveur.
  5. Pour résoudre le conflit de jeu enregistré, sélectionnez une version que vous souhaitez enregistrer sur le serveur que la version finale, et le transmettre à Snapshots.resolveConflict méthode ().

Ce qui suit montre snippet et exemple de la façon dont votre jeu pourrait gérer un jeu conflit enregistré en sélectionnant le jeu enregistré le plus récent que la version finale pour sauver:

Modification d'une partie sauvegardée pour la résolution des conflits

Si vous souhaitez fusionner les données des deux jeux enregistrés ou modifier un instantané existant pour enregistrer sur le serveur que la version finale résolu, procédez comme suit:

  1. Choisissez un objet instantané de getConflictingSnapshot () ou getSnapshot () comme base.
  2. Ensuite, appelez Snapshots.resolveConflict () et passer dans le cliché que vous avez sélectionné à l'étape précédente. Ce stocke l'instantané sur le serveur.
  3. Appel open () pour récupérer le cliché que vous avez stocké dans l'étape précédente. Maintenant, faites vos modifications à l'instantané retourné. puis appelez SnapshotsmitAndClose () pour télécharger le jeu modifié de sauvegarde sur le serveur.

Migration à partir de l'API AppState

Si votre jeu utilise l'API Cloud Save (AppState) pour stocker des données sur les joueurs à Google Play services de jeux, vous devez migrer votre code pour utiliser l'API Saved Games dès que possible. Le tableau suivant présente le code change que vous devriez être au courant lors de la migration de votre jeu:

Related posts

  • Où le Play Store stocker les applications que je suis en train de télécharger? La Playstore application utilise habituellement / données / local pour stocker temporairement .apk fichiers pendant le téléchargement, puis les installe à partir de là, ...

  • Comment définir la notification personnalisée Ringtone dans Android appareils Android sont largement déployée dans le monde. Dans les appareils Android il n'y a aucune option facile à mettre une coutume ou notification propre sonnerie ....

  • Où fichier de données d'application réellement stocké sur l'appareil Android? J'ai développé une application Android en utilisant Appcelerator Titanium. Cette application va créer un fichier dans applicationDataDirectory et ...

  • Le Meilleur eReader pour les ebooks de lecture Android sur Android utilisé pour être juste correct. Maintenant, il est génial. Bien qu'il existe beaucoup d'applications douces pour lire des livres sur votre téléphone ou tablette, Play Livres a ...

  • Vidéo: Hands-on Avec New Instagram vidéo sur Android Non pas que cela était une surprise après quelques rapports cassé les nouvelles dans les jours qui ont précédé l'événement Facebook d'aujourd'hui, mais oui, ils ...