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

Jos*_*son 10 android

Android在4.2(Jelly Bean MR1)中引入了多用户功能,其文档说明:

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

这是来自Environment.getExternalsStorageDirectory()和getExternalStoragePublicDirectory()方法doc的引用:

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

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

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

有用例.用例1:假设我正在编写一个需要100MB字典文件的输入法应用程序.我想编写代码,以便在用户A下载此文件时,用户B也可以访问它而无需重新下载.使用案例2:假设我正在写一个有趣的"留下我的妻子一个笔记"应用程序,该应用程序允许用户A键入下次用户B登录时显示的消息(不使用网络).

这个线程在一个单独的站点上提出了一个解决方案,但他们的方法似乎没有文档记录,可能不可靠.还有一些其他SO问题的标题与此类似,但实际上正在讨论不同的主题.

Pra*_*iki 13

OBB文件夹(/ sdcard/Android/obb)用于在多用户之间共享文件和文件夹.但OBB文件夹没有显示在我的第二个用户(One plus 5 mobile)中.所以我试图在第二个用户的Android文件夹(/ sdcard/Android /)中创建一个OBB文件夹,并在其中使用"BOOM".现在我能够访问第二个用户的共享文件.如果您的第二个用户未显示OBB文件夹,请尝试此技巧.


Nik*_*kov 9

OBB文件(存储在/sdcard/Android/obb)中并用作Google Play中的扩展文件由所有用户按设计共享,因为它们相当大.如果Input方法使用扩展文件,则下载的数据将自动共享.您可以向其他用户发送广播,但这需要INTERACT_ACROSS_USERS权限,该权限是为系统应用程序保留的.

  • 从 Android Q 开始,还没有办法让它工作。我花了一个小时尝试一切 (2认同)