我有两个应用程序。它们必须通过文件进行通信。我知道我可以使用 Context.openFileOutput 在 Android 上编写文件并传递它MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE
。但是如何在另一个应用程序中找到该文件?
抱歉,我找到了解决方案。在另一个应用程序中,您只需要获取适当的 Context,然后您就可以做同样的事情。API 是Context.createPackageContext
.
我有两个应用程序。它们必须通过文件进行通信。我知道我可以使用 Context.openFileOutput 在 Android 上编写文件并传递它MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE
。但是如何在另一个应用程序中找到该文件?
抱歉,我找到了解决方案。在另一个应用程序中,您只需要获取适当的 Context,然后您就可以做同样的事情。API 是Context.createPackageContext
.
解决方案是
在所有者进程中
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(...)