我有两个应用程序。他们必须通过文件进行通信。
我知道我可以使用Context.openFileOutput在Android上编写文件并将其传递给MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE
。但是如何在另一个应用程序中找到该文件呢?
抱歉,我找到了解决方案。在另一个应用程序中,您只需要获得适当的Context,然后就可以执行相同的操作.API为Context.createPackageContext
。
答案 0 :(得分:1)
解决方案是
所有者流程中的
final SharedPreferences pref = getSharedPreferences("preferences", Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE | Context.MODE_MULTI_PROCESS);
final SharedPreferences.Editor edit = pref.edit();
edit.putInt(....)
edit.commit();
在其他流程中
final Context remoteContext = createPackageContext(OWNER_PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY);
final SharedPreferences pref = remoteContext.getSharedPreferences("preferences", Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE | Context.MODE_MULTI_PROCESS);
pref.getInt(...)