Partage et persistance de données entre plusieurs applications Android

Je développe un groupe d'applications Android complexes qui doivent partager l'état commun et les paramètres de configuration.

Par exemple, voir cette image expliquant mon scénario:

  • Comment bien cloner un projet Android en utilisant Eclipse et Mercurial
  • L'autoplay mediaelement.js ne fonctionne pas sur les appareils mobiles
  • Comment puis-je identifier le dernier élément de RecyclerView visible à l'écran?
  • Comment gérer le bouton Retour dans la boîte de dialogue?
  • Android takePersistableUriPermission ne compile pas
  • Android - Mettre à jour un contact
  • Entrez la description de l'image ici

    Je souhaite que l'APP 1, l'APP 2 et l'APP 3 puissent accéder aux données (lecture / écriture) dans la zone de stockage commune. En outre, j'ai besoin d'une protection de désinstallation, c'est-à-dire que je ne veux pas que les données soient supprimées lorsque l'utilisateur désinstalle l'une des applications.

    J'ai déjà lu sur les bases de données SQLite, ContentProviders et l'écriture sur le stockage interne et externe, mais chacune des méthodes mentionnées ci-dessus présente des inconvénients comme indiqué ci-dessous:

    • Base de données SQLite: la DB est supprimée lors de la désinstallation de l'application et est privée pour chaque application
    • ContentProvider: les données sont supprimées lorsque l'application avec ContentProvider est supprimée
    • Stockage interne: est privé pour chaque application et les données sont supprimées lors de la désinstallation de l'application ( http://developer.android.com/training/basics/data-storage/files.html#InternalVsExternalStorage )
    • Stockage externe: n'est pas fiable (l'utilisateur peut supprimer la carte SD)
    • Stocker sur le serveur: impossible, l'utilisateur peut ne pas avoir une connexion Internet fiable

    MODIFIER:

    Je ne veux aucune dépendance sur Google Play Services car je distribuerai les applications via Play Store et en tant que téléchargements tiers.

    Sil te plait aide moi.

  • Impossible de nettoyer le projet dans Android Studio
  • Comment puis-je empêcher mon application / service Android d'être "tué" d'un gestionnaire de tâches?
  • Erreur lors de la construction d'un fichier APK dans Android Studio 2.1.1
  • Comment créer notre propre interface Auditeur dans Android?
  • Est-il possible d'exécuter Xamarin Mono sur Linux?
  • Supprimer l'application du lanceur par programme dans Android
  • 4 Solutions collect form web for “Partage et persistance de données entre plusieurs applications Android”

    Google Drive est une sorte de cela pour vous. Vous obtenez essentiellement l'autorisation d'un système de fichiers local qui est soutenu par un système distant. Sur la plupart des téléphones, cela devient préinstallé, de sorte que le problème de désinstallation dont vous vous inquiétez est moins important.

    Vous pouvez créer un dossier pour vos applications que vous pouvez ensuite lire / écrire.

    https://developers.google.com/drive/android/

    Vous pouvez utiliser l'objet de préférences partagées pour lire et écrire des données de préférences à partir d'un fichier. Le plus important est d'utiliser MODE_MULTI_PROCESS. Le bit MODE_MULTI_PROCESS est utilisé si plusieurs processus modifient le même fichier SharedPreferences.

    Utilisez le code suivant:

     SharedPreferences shPrefernces = context.getSharedPreferences("filename", MODE_MULTI_PROCESS); String s1 = shPrefernces.getString("keytosearch1", ""); String pass = shPrefernces.getString("keytosearch2", ""); 

    Je suis d'accord que les préférences partagées avec world_readable ne suffisent pas pour vous ou le partage sur Internet n'est pas possible, mais vous pouvez toujours faire une chose.

    Utilisation des récepteurs de diffusion et des diffusions personnalisées. Avec des données communes redondantes sur toutes les applications avec des préférences partagées.

    Qui met à jour les données envoie une émission au système. Toutes les applications mettent en œuvre un récepteur de diffusion. Lorsqu'une nouvelle émission a été reçue, ils mettent à jour les données dans les préférences partagées. L'application A -> envoie une émission lorsque les données sont mises à jour.

    Si l'application B est déjà installée, l'application B reçoit également la diffusion et enregistre les données à partir de cette intention.

    Si l'application B met à jour de nouvelles données. APP B -> envoie une diffusion pour les données communes Les autres applications mettront à jour les données.

    • Seules les données courantes seront perdues lorsque toutes les applications seront supprimées. Si au moins une application est installée, les données persistent.

    Les données de préférence seront toujours stockées dans le contexte de chaque application. Utilisez sharedUserId et créez un nouveau fichier de préférences dans toutes les applications. Lors de l'ouverture de chaque application, l'application doit vérifier la valeur de préférence à partir de tous les autres contextes d'applications et devrait écrire dans sa préférence en fonction de la dernière valeur de temps mise à jour disponible dans la préférence pour trouver la dernière mise à jour.

    Chaque fois qu'une application est ouverte, les dernières données seront stockées dans son site. Si l'une des applications est installée ou désinstallée, cela devrait fonctionner correctement.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.