我很难搞清楚做以下事情的最佳方法: 我正在构建一个供不同应用程序使用的库。该库提供了一个用户系统, 通过服务,由“经理应用程序”启动(用于登录,添加用户等)。
我需要提供跨应用程序共享文件的工具。
想象一下,我们有一个名为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的安全机制(每个应用程序的“私有空间”), 但我需要这个,这或类似的东西。在我看来也是如此 通过意图提供文件有点“奇怪”......任何观察或想法?
答案 0 :(得分:1)
要在Android上使用ContentProvider
您将实现ContentProvider而不是Service。数据用户可以通过ContentResolver