如何在多用户系统中获取UserHandle活动

时间:2013-08-05 09:17:34

标签: android android-activity android-package-managers

我有一个在后台运行的服务,用于监控前台活动。目前这并没有区分用户(多用户帐户Android 4.2)。有没有办法让服务可以将正在运行的用户与前台活动的用户进行比较?我只对运行该服务的同一用户帐户的活动感兴趣。

我知道我可以使用:

android.os.Process.myUserHandle()

获取运行该服务的UserHandle。但我在文档中看不到任何可以给我运行活动的UserHandle的东西(ActivityManager.RunningAppProcessInfo等)。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

活动始终以android.os.Process.myUserHandle()返回的用户身份运行。

答案 1 :(得分:1)

从服务内部,您可以使用android.os.Binder.getCallingUid()获取包含调用该服务的活动的进程的完整内核uid。通过android.os.Process.getUserId()运行此结果以获取两位数的Android用户句柄,并将其与android.os.Process.myUserHandle()进行比较。