diff options
4 files changed, 9 insertions, 5 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index dbe91f97dfbf..0adce5dc193d 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -777,7 +777,9 @@ final class ApplicationPackageManager extends PackageManager { public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) { try { - return mPM.queryContentProviders(processName, uid, flags); + ParceledListSlice<ProviderInfo> slice + = mPM.queryContentProviders(processName, uid, flags); + return slice != null ? slice.getList() : null; } catch (RemoteException e) { throw new RuntimeException("Package manager has died", e); } diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 03366455cda8..a5e9faf7b1b9 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -203,7 +203,7 @@ interface IPackageManager { void querySyncProviders(inout List<String> outNames, inout List<ProviderInfo> outInfo); - List<ProviderInfo> queryContentProviders( + ParceledListSlice queryContentProviders( String processName, int uid, int flags); InstrumentationInfo getInstrumentationInfo( diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 783dea5acc5c..e8ffdb67d77e 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -9154,9 +9154,10 @@ public final class ActivityManagerService extends ActivityManagerNative private final List<ProviderInfo> generateApplicationProvidersLocked(ProcessRecord app) { List<ProviderInfo> providers = null; try { - providers = AppGlobals.getPackageManager(). + ParceledListSlice<ProviderInfo> slice = AppGlobals.getPackageManager(). queryContentProviders(app.processName, app.uid, STOCK_PM_FLAGS | PackageManager.GET_URI_PERMISSION_PATTERNS); + providers = slice != null ? slice.getList() : null; } catch (RemoteException ex) { } if (DEBUG_MU) Slog.v(TAG_MU, diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 68a8e223782a..1d56a0ca0b70 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -5435,7 +5435,7 @@ public class PackageManagerService extends IPackageManager.Stub { } @Override - public List<ProviderInfo> queryContentProviders(String processName, + public ParceledListSlice<ProviderInfo> queryContentProviders(String processName, int uid, int flags) { ArrayList<ProviderInfo> finalList = null; // reader @@ -5467,9 +5467,10 @@ public class PackageManagerService extends IPackageManager.Stub { if (finalList != null) { Collections.sort(finalList, mProviderInitOrderSorter); + return new ParceledListSlice<ProviderInfo>(finalList); } - return finalList; + return null; } @Override |