Android Filesystem(通过应用程序共享文件,通过服务)

时间:2012-10-17 09:10:42

标签: android service android-intent filesystems ipc

我很难搞清楚做以下事情的最佳方法: 我正在构建一个供不同应用程序使用的库。该库提供了一个用户系统, 通过服务,由“经理应用程序”启动(用于登录,添加用户等)。

我需要提供跨应用程序共享文件的工具。

想象一下,我们有一个名为APP XPTO的应用程序。这个APP需要存储 一些文件(可能是录音,对于这个例子)。但它不应该这样做 在其私有应用程序空间(默认情况下由Android提供)。它应该在一个空间 经理应用程序(或服务,如果你可以)访问。还有,这些 文件需要加密,因为我通过服务提供多用户系统, 但我不想面对隐私问题。

我想通过创建让服务管理这个文件系统(FS)抽象 用于表示文件的类:

class MyFile { // make it parcelable
    private String fullpath;
    private byte[] data;
    private User user;
}

通过意图提供基本的FS使用。

APP XPTO可以发送一个请求文件的意图,在意图中提供它 路径和它“所属”的用户名。该服务将查找该文件, 使用用户密钥(由用户名标识)解密,并创建一个新的 MyFile将其置于意图中并将其发送到APP XPTO。

这样,文件可以存储在“私有应用程序空间”中,因为它们将是 由服务提供。正确?

然而,这似乎有点“奇怪”。我知道Android不是多用户 操作系统(尽管正在解决这个问题)并且这个想法一个人反对 至少有一个Android的安全机制(每个应用程序的“私有空间”), 但我需要这个,这或类似的东西。在我看来也是如此 通过意图提供文件有点“奇怪”......

任何观察或想法?

1 个答案:

答案 0 :(得分:1)

要在Android上使用ContentProvider

在不同应用程序之间共享数据

您将实现ContentProvider而不是Service。数据用户可以通过ContentResolver

致电提供商