我很难弄清楚什么是执行以下操作的最佳方法:我正在构建一个供不同应用程序使用的库。该库通过服务提供用户系统,该服务由“管理器应用程序”(用于登录、添加用户等)启动。
我需要提供一种跨应用程序共享文件的工具。
想象一下,我们有一个名为 APP XPTO 的应用程序。这个APP需要存储一些文件(本例可能是录音)。但它不应该在其私有应用程序空间(默认情况下由 Android 提供)中这样做。它应该位于管理器应用程序(或服务,如果您愿意)可以访问的空间。此外,这些文件需要加密,因为我通过该服务提供多用户系统,但我不想面对隐私问题。
我想通过创建一个代表文件的类来让服务管理这个文件系统(FS)抽象:
class MyFile { // make it parcelable
private String fullpath;
private byte[] data;
private User user;
}
并通过意图提供基本的 FS 使用。
APP XPTO 可以发送一个请求文件的意图,在意图中提供它的路径和它“属于”的用户名。该服务将查找文件,使用用户密钥(由用户名标识)对其进行解密,然后创建一个新的 MyFile 对象以将其放入 Intent 并将其发送到 APP XPTO。
通过这种方式,文件可以存储在“私人应用程序空间”中,因为它们将由服务提供。正确的?
然而,这似乎有点“奇怪”。我知道 Android 不是一个多用户操作系统(尽管正在解决这个问题),而且这个想法本身就违反了 Android 的至少一个安全机制(每个应用程序的“私人空间”),但我需要这个工作,这个或类似的东西。在我看来,通过意图提供文件有点“奇怪”......
有什么观察或想法吗?