如何在Android 4.2中使用多用户环境查看外部存储中的Android/data/your.package.name文件?

6

Android 4.2为平板电脑增加了多用户支持。现在,当您通过像 Environment.getExternalStorageDirectory()Context.getExternalFilesDir(null) 这样的方法请求保存文件到外部存储的路径时,您会得到一个值,如:/storage/emulated/#/Android/data/your.package.name/ 其中 # 是一个数字,取决于您当前登录的用户。

这很好用,但我注意到 DDMS 的文件浏览器和 Android 文件传输 无法查看这些文件。

DDMS 的文件浏览器除了一个空的 legacy 文件夹之外,无法看到 storage/emulated/ 后面的任何内容。文件传输可以看到 /Android/data/ 文件夹,但对于作为调试运行的应用程序,其文件不可见(但确实存在)。

有没有办法让 DDMS 或文件传输与这些设备配合使用?(希望不用 root 设备...)

谢谢

2个回答

13

啊哈!

尝试使用/mnt/shell/emulated/N,其中N为不同的值,例如0。在我的Nexus 10和Galaxy Nexus中,它似乎可以正确映射到DDMS中。我无法评论文件传输工具。

顺便说一句,用户的数字不是连续的。所以在我的N10上,原始用户是0,第二个用户是10


2
是的!谢谢你。你就像一个神奇的巫师,四处旅行并为人们修复问题。再次感谢。 - cottonBallPaws
就像你所说的,在文件浏览器(DDMS)中可以工作,但在文件传输工具中却不行。我可以接受这个! - cottonBallPaws
2
@littleFluffyKitty:谢谢!你就像一只,嗯,小巧可爱的年轻猫咪! :-) - CommonsWare

3
作为Jelly Bean 4.2版本支持多用户配置文件,SD卡浏览已经有了一些改变。
您必须拥有ADT v 21或更高版本才能浏览模拟的SD卡。/mnt/shell/emulated/0是默认用户的位置。更多详细信息请参见附图。 放大图片

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接