Merge "Skip uninstalled package for getPackagesForUid()" am: f4c8c3590a am: 659cdfef75
am: fb55d69029
Change-Id: Id468596684eb071a477beff2e3e7185ed36cd7a3
This commit is contained in:
@@ -4627,6 +4627,7 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
|
||||
@Override
|
||||
public String[] getPackagesForUid(int uid) {
|
||||
final int userId = UserHandle.getUserId(uid);
|
||||
uid = UserHandle.getAppId(uid);
|
||||
// reader
|
||||
synchronized (mPackages) {
|
||||
@@ -4634,9 +4635,16 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
if (obj instanceof SharedUserSetting) {
|
||||
final SharedUserSetting sus = (SharedUserSetting) obj;
|
||||
final int N = sus.packages.size();
|
||||
final String[] res = new String[N];
|
||||
for (int i = 0; i < N; i++) {
|
||||
res[i] = sus.packages.valueAt(i).name;
|
||||
String[] res = new String[N];
|
||||
final Iterator<PackageSetting> it = sus.packages.iterator();
|
||||
int i = 0;
|
||||
while (it.hasNext()) {
|
||||
PackageSetting ps = it.next();
|
||||
if (ps.getInstalled(userId)) {
|
||||
res[i++] = ps.name;
|
||||
} else {
|
||||
res = ArrayUtils.removeElement(String.class, res, res[i]);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
} else if (obj instanceof PackageSetting) {
|
||||
|
||||
Reference in New Issue
Block a user