通过SharedPreference实现共享数据

如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现:
try {
            AContext =createPackageContext(A_PACKAGE_NAME,
                    Context.CONTEXT_IGNORE_SECURITY);
        } catch (NameNotFoundException e) {
            Log.e(TAG, "find package error!");
        }
        SharedPreferences sp = AContext.getSharedPreferences(PREFERENCES_NAME,
                Context.MODE_WORLD_READABLE);
        sp.getInt(PREF_NAME, 0);

在A程序里创建SharedPreference的时候也需要使用Context.MODE_WORLD_READABLE属性。另外SharedPreference还有Context.MODE_WORLD_WRITEABLE属性。根据SDK的解释,就是允许别的应用程序来对SharedPreference进行写操作。但是在实际程序实验中发现即使加上了这个属性,写操作也是无法成功的,会提示一个错误:Couldn't rename file /data/data/....PREFERENCES_NAME.XML to  /data/data/....PREFERENCES_NAME.XML.bak。
在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的,同时,两个应用要是同一个签名文件签名。

猜你喜欢

转载自jacky-zhang.iteye.com/blog/1851517