多用户相关

获取当前用户/用户ID

1.android.os.Process.myUserHandle()

2.UserHandle.myUserId()

3.UserHandle.getUserId(android.os.Process.myUid())

4.UserManager um = (UserManager) this.getSystemService(Context.USER_SERVICE);

   UserHandle user = um.getUserForSerialNumber(ActivityManager.getCurrentUser());

ActivityManager.getCurrentUser

这是一个hide的API,而且需要是system permission。

system permission

.AndroidManifest.xml里面定义android:sharedUserId=“android.uid.system”

.Android.mk里面定义签名LOCAL_CERTIFICATE := platform

还需要android.permission.INTERACT_ACROSS_USERS权限。

所以说这种用法的限制条件比较多。

如果是一般的app,建议用1~3的方法,但是如果是SystemUI里面的话,有可能1~3并不能取到正确的id,

所以这个时候,可以考虑用4的这种方法。

获取OWNER的方法

UserHandle.USER_OWNER

UserHandle和userId转换

UserHandle->userId

UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);

userId = um.getSerialNumberForUser(user);

userId->UserHandle

user = um.getUserForSerialNumber(userId);

 

转载于:https://www.cnblogs.com/minminjy123/p/5345211.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值