/storage/emulated/0/Pictures中的“0”是什么意思?

工作中,遇到一点问题,自己简单梳理一下。就是一个系统中,系统服务只会有一个,不同的用户共用一个系统服务,不像一般的应用程序,不同的用户启动的应用程序会有多个,用uid区别开,至此也解开了对一个一直有留意到,却未曾深究的问题,为什么调用获取系统公共图片的路径时,

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
得到的绝对路径为/storage/emulated/0/Pictures,这之间的0代表着什么含义呢?
这其实就是一个uid的区别,不同用户的数据存储空间以此相互分隔。
 
如何进行用户识别?
ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
am.getCurrentUser();   //默认用户 =0;  

Android 4.2以后,提供了对多用户的支持,即同一部手机上可以有不同的用户身份,有不同的访问权限,但局限性比较明显,就同我们Linux用户切换一样,需要重新登录用户,初始化另一个用户环境,比较直观的感受就是重新切换一个桌面,比较费时,消耗资源。

基于多用户可以实现很多有意思的事情,比如老人模式,儿童模式,绿色模式等等,实质上就是进行一个用户的切换,而不同用户配置不同的权限,分配不同的资源。但由于切换用户的时间,资源等成本过高,一般需要用动画等进行过渡,避免用户体验不佳。很多时候我们并不需要如此重量级的解决方案,因此,谷歌有提供了另一个概念,叫Profile,以一种更轻量的方式实现隔离的效果。

目前,应用多开,保险箱,隐私空间等大都再此基础上进行设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值