簡體   English   中英

如何在多個Android libgdx應用之間共享libgdx首選項文件

[英]How to share libgdx preference file between multiple android libgdx app

我有兩個Android應用程序,我想共享我的首選項文件。 最好的方法是什么? 我曾嘗試在兩個應用的清單中設置一個sharedUserId,但是我不確定實現我的要求所需的其他設置。

在這方面的任何幫助將不勝感激。

謝謝,

在您的AndroidApplication子類中,您需要覆蓋getPreferences以便它返回已安裝的其他應用程序的首選項。 我認為,這樣做的方法是使一個應用程序成為主應用程序,而該應用程序並沒有做任何特別的事情,如果安裝了主應用程序,則使輔助應用程序嘗試使用主應用程序的首選項。

因此,僅在輔助應用程序中覆蓋它:

@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
}

如果需要處理先安裝第二個應用程序並使用一段時間,然后用戶安裝第一個應用程序的情況,這將變得更加復雜。 因為現在您可能希望第一個應用程序成為次要應用程序,而第二個應用程序成為主要應用程序。 或者,如果已經安裝了輔助應用程序,則可以檢查主應用程序的安裝,然后將輔助應用程序的首選項復制到主應用程序。

還存在卸載主應用程序但用戶繼續使用輔助應用程序的情況,這時首選項文件丟失並且用戶突然恢復為默認設置。

也許安全的方法是Libgdx的AndroidPreferences子類,並使其始終寫入兩個應用程序中的SharedPreferences,以便它們始終保持同步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM