Get packageManager based on current user
When switching to 2nd user, get new packageManager based on current user so we can get correct package information.
Bug: 192994529
Test: manually with CtsVerifier
Change-Id: Ie5db871bbbfd2c34916fde254026339605a4a69d
diff --git a/src/com/android/se/SecureElementService.java b/src/com/android/se/SecureElementService.java
index 2742fb4..fb2e771 100644
--- a/src/com/android/se/SecureElementService.java
+++ b/src/com/android/se/SecureElementService.java
@@ -22,6 +22,7 @@
package com.android.se;
+import android.app.ActivityManager;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -34,6 +35,7 @@
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.ServiceSpecificException;
+import android.os.UserHandle;
import android.se.omapi.ISecureElementChannel;
import android.se.omapi.ISecureElementListener;
import android.se.omapi.ISecureElementReader;
@@ -133,7 +135,10 @@
throw new IllegalArgumentException("package names not specified");
}
Terminal terminal = getTerminal(reader);
- return terminal.isNfcEventAllowed(getPackageManager(), aid, packageNames);
+ UserHandle currentUser = new UserHandle(ActivityManager.getCurrentUser());
+ return terminal.isNfcEventAllowed(
+ createContextAsUser(currentUser, /*flags=*/0).getPackageManager(),
+ aid, packageNames);
}
@Override