I have a service that runs in the background that monitors the foreground activity. At present this does not distinguish between users (multi user accounts Android 4.2). Is there a way that the service can compare the user it is running under with that of the foreground activity? I am only interested in activities of the same user account that the service is running under.
I know I can use:
android.os.Process.myUserHandle()
to get the UserHandle that the service is running under. But I can't see anything in the docs that can give me the UserHandle of a running activity (ActivityManager.RunningAppProcessInfo etc).
Any ideas?
Activity always runs as user returned by android.os.Process.myUserHandle()
.
From inside the service, you can use android.os.Binder.getCallingUid()
to get the full kernel uid
of the process containing the Activity that's calling the service. Run this result through android.os.Process.getUserId()
to get the two digit Android user handle and compare it with android.os.Process.myUserHandle()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With