Fixed get packages for HSUM devices
On HSUM devices, packages installed on secondary users can't
be retrieved by the system users' package manager. Fixed by
using corresponding user's package manager.
Fix: 356827794
Fix: 362253919
Test: Basic telephony functionality tests
Test: atest FrameworksTelephonyTests TeleServicesTests
Flag: com.android.internal.telephony.flags.hsum_broadcast
Change-Id: Ic8c973caac761882481a6b2be319f41497012095
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
index 766d719..e2ae343 100644
--- a/src/com/android/phone/ImsRcsController.java
+++ b/src/com/android/phone/ImsRcsController.java
@@ -986,9 +986,16 @@
*/
@Nullable
private String getCurrentPackageName() {
+ if (mFeatureFlags.hsumPackageManager()) {
+ PackageManager pm = mApp.getBaseContext().createContextAsUser(
+ Binder.getCallingUserHandle(), 0).getPackageManager();
+ if (pm == null) return null;
+ String[] callingPackageNames = pm.getPackagesForUid(Binder.getCallingUid());
+ return (callingPackageNames == null) ? null : callingPackageNames[0];
+ }
if (mPackageManager == null) return null;
- String[] callingUids = mPackageManager.getPackagesForUid(Binder.getCallingUid());
- return (callingUids == null) ? null : callingUids[0];
+ String[] callingPackageNames = mPackageManager.getPackagesForUid(Binder.getCallingUid());
+ return (callingPackageNames == null) ? null : callingPackageNames[0];
}
/**