0

teilen Ich habe zwei Android-Anwendungen, unter denen ich meine Präferenz-Dateien teilen möchte. Was ist der beste Weg, dies zu tun? Ich habe versucht, eine sharedUserId im Manifest der beiden Apps zu setzen, aber ich bin unsicher über die zusätzlichen Einstellungen erforderlich, um meine Anforderungen zu erreichen.Wie libgdx Preference-Datei zwischen mehreren Android-libgdx-App

Jede Hilfe in dieser Hinsicht würde sehr geschätzt werden.

Danke,

+0

Haben Sie Arbeit, um uns zu zeigen, was Sie versucht haben? Wo speichern Sie die aktuellen Eigenschaften, die Sie teilen möchten? – Underbalanced

Antwort

0

In Ihrem AndroidApplication Unterklasse, müssen Sie getPreferences so gibt es die Einstellungen Ihrer anderen installierten App außer Kraft zu setzen. Ich denke, der Weg dahin ist, eine App zur primären zu machen, die nichts Besonderes macht, und die sekundäre App dazu zu bringen, die Einstellungen der primären App zu verwenden, wenn die primäre App installiert ist.

So überschreiben diese nur in der sekundären App:

@Override 
public Preferences getPreferences (String name) { 
    try { 
     Context primaryAppContext = 
      createPackageContext("com.package.of.primary.app", Context.MODE_PRIVATE); 
      return new AndroidPreferences(primaryAppContext.getSharedPreferences(name, Context.MODE_PRIVATE)); 
    catch (PackageManager.NameNotFoundException e){} //other app not installed 
    catch (SecurityException e){} //other app not accessible, maybe due to permissions 
    return super.getPreferences(name); //fall back to local preferences 
} 

Diese komplizierter wird, wenn Sie den Fall behandeln müssen, wo die zweite App zum ersten Mal installiert wird, und für eine Weile benutzt und dann den Benutzer installiert die erste App Denn jetzt möchten Sie vielleicht, dass die erste App die sekundäre App wird und die sekundäre App die primäre App wird. Oder Sie können die Installation der primären App überprüfen, wenn die sekundäre App bereits installiert ist, und die Einstellungen der sekundären App in die primäre App kopieren.

Es gibt auch den Fall, dass die primäre App deinstalliert wird, aber der Benutzer weiterhin die sekundäre App verwendet. Zu diesem Zeitpunkt geht die Voreinstellungsdatei verloren und der Benutzer kehrt plötzlich zu den Standardeinstellungen zurück.

Vielleicht ist die sichere Sache zu Unterklasse Libgdx's AndroidPreferences und verursachen, dass es immer in SharedPreferences in beiden Apps schreiben, so dass sie immer synchron sein werden.