在多用户Android(4.2或更高版本)上的用户之间共享数据

在多用户Android(4.2或更高版本)上的用户之间共享数据,android,Android,Android在4.2中引入了多用户功能(Jelly Bean MR1)及其文档状态: 从应用程序的角度来看,每个用户都在完全独立的设备上运行 下面是对Environment.getExternalsStorageDirectory()和getExternalStoragePublicDirectory()方法文档的引用: 在具有多个用户的设备上(如UserManager所述),每个用户都有自己的独立外部存储。应用程序只能作为其运行的用户访问外部存储 如果不使用网络作为中介,是否真的没有可靠的方

Android在4.2中引入了多用户功能(Jelly Bean MR1)及其文档状态:

从应用程序的角度来看,每个用户都在完全独立的设备上运行

下面是对Environment.getExternalsStorageDirectory()和getExternalStoragePublicDirectory()方法文档的引用:

在具有多个用户的设备上(如UserManager所述),每个用户都有自己的独立外部存储。应用程序只能作为其运行的用户访问外部存储

如果不使用网络作为中介,是否真的没有可靠的方法在单个设备上的用户之间进行数据通信?我正在寻找一种解决方案,这种解决方案不依赖于制造商如何布置设备文件系统的怪癖。此外,为了安全起见,共享应该在我的应用程序内部

即使文件共享确实不可能,通过意图进行通信是否可能

有这样的用例。用例1:假设我正在编写一个需要100MB字典文件的输入法应用程序。我想编写代码,这样如果用户A下载这个文件,那么用户B也可以访问它,而无需重新下载。用例2:假设我正在写一个有趣的“给我妻子留个便条”应用程序,该应用程序允许用户a键入消息,这些消息将在用户B下次登录时出现(不使用网络)


在另一个网站上提出了一个解决方案,但他们的方法似乎没有文档记录,而且可能不可靠。还有一些类似的标题,但实际上讨论了不同的主题。

OBB文件(存储在
/sdcard/Android/OBB
中)作为Google Play中的扩展文件,通过设计在所有用户之间共享,因为它们相当大。如果输入法使用扩展文件,下载的数据将自动共享。您可以向其他用户发送广播,但这需要
跨用户交互
权限,这是为系统应用程序保留的权限。

OBB文件夹(/sdcard/Android/OBB)用于在多个用户之间共享文件和文件夹。但我的第二个用户(1加5手机)中未显示OBB文件夹。所以我试着在第二个用户的Android文件夹(/sdcard/Android/)中创建一个OBB文件夹,它成功了。现在我可以在第二个用户中访问共享文件。如果第二个用户中未显示OBB文件夹,请尝试此技巧

我也有同样的问题,并尝试了各种方法,例如使用
/sdcard/Android/obb
,但在Android 10中不起作用。所以我遵循了下面的方法,我能够在用户之间无缝地复制文件

  • 登录到要从中复制文件的用户(让我们调用U1)
  • 使用任何选择的应用程序(如MiXplorer/ES Explorer等)运行FTP服务器。。。记下端口#、用户名、密码等的详细信息。。。并将其指向
    /sdcard
  • 将用户切换到要将文件复制到的位置(让我们调用U2)
  • 安装FTP浏览器。如果您使用MiXplorer/ES Explorer,它们将允许您添加FTP共享
  • 使用
    ftp://localhost:2121
    假设端口是
    2121
    ,如果不是,则相应地更改端口并添加FTP共享
  • 打开FTP共享,您可以在此处看到U1的所有文件和文件夹
  • 复制到你的心的内容
好消息,尼古拉。我想知道你提到的路径是否得到官方支持或有文档。我也对你的答案投了赞成票,但还没有接受,因为理想情况下,其他应用程序无法访问共享区域。我开始认为没有一个解决方案能够满足我的具体需求。路径通常被视为实现细节,并且随着版本的变化而变化,因此它们通常没有详细的文档记录。有关这方面的一些官方信息,请参见
StorageManager的JavaDoc
:这在我的Nexus 5X v7.1.1上不起作用。obb文件夹不在那里(或不可见)。在Android P上工作。但是,我必须通过安装和使用在两个帐户上都使用obb的应用程序来启动它,例如宜家广场。。。直到那时obb文件夹才显示为Android Q的upAs,没有办法让它工作。我花了一个小时试了所有的东西,但仍然没有找到解决这个问题的办法。我试过使用/sdcard/Android/obb,但在三星Galaxy Tab 4上不起作用。谢谢。这是另一个(评分较高)答案中缺失的重要一步。当我也为第二个用户创建了一个obb文件夹时,它显示了内部文件和文件夹。