android.content.pm.PackageParser#ServiceIntentInfo()源码实例Demo

下面列出了android.content.pm.PackageParser#ServiceIntentInfo() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

void addService(PackageParser.Service s) {
    mServices.put(s.getComponentName(), s);
    if (DEBUG_SHOW_INFO) {
        Log.v(TAG, "  "
                + (s.info.nonLocalizedLabel != null
                ? s.info.nonLocalizedLabel : s.info.name) + ":");
        Log.v(TAG, "    Class=" + s.info.name);
    }
    final int intentsSize = s.intents.size();
    int j;
    for (j = 0; j < intentsSize; j++) {
        PackageParser.ServiceIntentInfo intent = s.intents.get(j);
        if (DEBUG_SHOW_INFO) {
            Log.v(TAG, "    IntentFilter:");
            intent.dump(new LogPrinter(Log.VERBOSE, TAG), "      ");
        }
        if (!intent.debugCheck()) {
            Log.w(TAG, "==> For Service " + s.info.name);
        }
        addFilter(intent);
    }
}
 
void removeService(PackageParser.Service s) {
    mServices.remove(s.getComponentName());
    if (DEBUG_SHOW_INFO) {
        Log.v(TAG, "  " + (s.info.nonLocalizedLabel != null
                ? s.info.nonLocalizedLabel : s.info.name) + ":");
        Log.v(TAG, "    Class=" + s.info.name);
    }
    final int intentsSize = s.intents.size();
    int j;
    for (j = 0; j < intentsSize; j++) {
        PackageParser.ServiceIntentInfo intent = s.intents.get(j);
        if (DEBUG_SHOW_INFO) {
            Log.v(TAG, "    IntentFilter:");
            intent.dump(new LogPrinter(Log.VERBOSE, TAG), "      ");
        }
        removeFilter(intent);
    }
}
 
@Override
protected boolean isFilterStopped(PackageParser.ServiceIntentInfo filter, int userId) {
    if (!sUserManager.exists(userId)) return true;
    PackageParser.Package p = filter.service.owner;
    if (p != null) {
        PackageSetting ps = (PackageSetting) p.mExtras;
        if (ps != null) {
            // System apps are never considered stopped for purposes of
            // filtering, because there may be no way for the user to
            // actually re-launch them.
            return (ps.pkgFlags & ApplicationInfo.FLAG_SYSTEM) == 0
                    && ps.getStopped(userId);
        }
    }
    return false;
}
 
源代码4 项目: container   文件: VPackageManagerService.java
public List<ResolveInfo> queryIntentForPackage(Intent intent, String resolvedType, int flags,
		ArrayList<PackageParser.Service> packageServices) {
	if (packageServices == null) {
		return null;
	}
	mFlags = flags;
	final boolean defaultOnly = (flags & PackageManager.MATCH_DEFAULT_ONLY) != 0;
	final int N = packageServices.size();
	ArrayList<PackageParser.ServiceIntentInfo[]> listCut = new ArrayList<PackageParser.ServiceIntentInfo[]>(N);

	ArrayList<PackageParser.ServiceIntentInfo> intentFilters;
	for (int i = 0; i < N; ++i) {
		intentFilters = packageServices.get(i).intents;
		if (intentFilters != null && intentFilters.size() > 0) {
			PackageParser.ServiceIntentInfo[] array = new PackageParser.ServiceIntentInfo[intentFilters.size()];
			intentFilters.toArray(array);
			listCut.add(array);
		}
	}
	return super.queryIntentFromList(intent, resolvedType, defaultOnly, listCut);
}
 
源代码5 项目: container   文件: VPackageManagerService.java
@Override
protected ResolveInfo newResult(PackageParser.ServiceIntentInfo filter, int match) {
	final PackageParser.Service service = filter.service;
	ServiceInfo si = PackageParserCompat.generateServiceInfo(service, mFlags);
	if (si == null) {
		return null;
	}
	final ResolveInfo res = new ResolveInfo();
	res.serviceInfo = si;
	if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) {
		res.filter = filter;
	}
	res.priority = filter.getPriority();
	res.preferredOrder = service.owner.mPreferredOrder;
	res.match = match;
	res.isDefault = filter.hasDefault;
	res.labelRes = filter.labelRes;
	res.nonLocalizedLabel = filter.nonLocalizedLabel;
	res.icon = filter.icon;
	return res;
}
 
public final void removeService(PackageParser.Service s) {
	mServices.remove(s.getComponentName());
	int NI = s.intents.size();
	for (int j = 0; j < NI; j++) {
		PackageParser.ServiceIntentInfo intent = s.intents.get(j);
		removeFilter(intent);
	}
}
 
@Override
protected boolean allowFilterResult(
        PackageParser.ServiceIntentInfo filter, List<ResolveInfo> dest) {
    ServiceInfo filterSi = filter.service.info;
    for (int i = dest.size() - 1; i >= 0; --i) {
        ServiceInfo destAi = dest.get(i).serviceInfo;
        if (destAi.name == filterSi.name
                && destAi.packageName == filterSi.packageName) {
            return false;
        }
    }
    return true;
}
 
@Override
protected void dumpFilter(PrintWriter out, String prefix,
		PackageParser.ServiceIntentInfo filter) {
	out.print(prefix);
	out.print(Integer.toHexString(System.identityHashCode(filter.service)));
	out.print(' ');
	out.print(filter.service.getComponentName());
	out.print(" filter ");
	out.println(Integer.toHexString(System.identityHashCode(filter)));
}
 
源代码9 项目: container   文件: VPackageManagerService.java
public final void addService(PackageParser.Service s) {
	mServices.put(s.getComponentName(), s);
	if (DEBUG_SHOW_INFO) {
		Log.v(TAG, "  " + (s.info.nonLocalizedLabel != null ? s.info.nonLocalizedLabel : s.info.name) + ":");
		Log.v(TAG, "    Class=" + s.info.name);
	}
	final int NI = s.intents.size();
	int j;
	for (j = 0; j < NI; j++) {
		PackageParser.ServiceIntentInfo intent = s.intents.get(j);
		addFilter(intent);
	}
}
 
源代码10 项目: container   文件: VPackageManagerService.java
public final void removeService(PackageParser.Service s) {
	mServices.remove(s.getComponentName());
	if (DEBUG_SHOW_INFO) {
		Log.v(TAG, "  " + (s.info.nonLocalizedLabel != null ? s.info.nonLocalizedLabel : s.info.name) + ":");
		Log.v(TAG, "    Class=" + s.info.name);
	}
	final int NI = s.intents.size();
	int j;
	for (j = 0; j < NI; j++) {
		PackageParser.ServiceIntentInfo intent = s.intents.get(j);
		removeFilter(intent);
	}
}
 
源代码11 项目: container   文件: VPackageManagerService.java
@Override
protected boolean allowFilterResult(PackageParser.ServiceIntentInfo filter, List<ResolveInfo> dest) {
	ServiceInfo filterSi = filter.service.info;
	for (int i = dest.size() - 1; i >= 0; i--) {
		ServiceInfo destAi = dest.get(i).serviceInfo;
		if (ObjectsCompat.equals(destAi.name, filterSi.name)
				&& ObjectsCompat.equals(destAi.packageName, filterSi.packageName)) {
			return false;
		}
	}
	return true;
}
 
@Override
protected boolean allowFilterResult(
		PackageParser.ServiceIntentInfo filter, List<PackageParser.Service> dest) {
	for (int i = dest.size() - 1; i >= 0; i--) {
		PackageParser.Service destAi = dest.get(i);
		if (destAi == filter.service) {
			return false;
		}
	}
	return true;
}
 
源代码13 项目: AndroidComponentPlugin   文件: ComponentResolver.java
@Override
protected PackageParser.ServiceIntentInfo[] newArray(int size) {
    return new PackageParser.ServiceIntentInfo[size];
}
 
源代码14 项目: AndroidComponentPlugin   文件: ComponentResolver.java
@Override
protected boolean isPackageForFilter(String packageName,
        PackageParser.ServiceIntentInfo info) {
    return packageName.equals(info.service.owner.packageName);
}
 
@Override
protected PackageParser.Service newResult(PackageParser.ServiceIntentInfo info,
		int match) {
	return info.service;
}
 
源代码16 项目: container   文件: VPackageManagerService.java
@Override
protected PackageParser.ServiceIntentInfo[] newArray(int size) {
	return new PackageParser.ServiceIntentInfo[size];
}
 
@Override
protected String packageForFilter(PackageParser.ServiceIntentInfo info) {
	return info.service.owner.packageName;
}
 
源代码18 项目: container   文件: VPackageManagerService.java
@Override
protected boolean isPackageForFilter(String packageName, PackageParser.ServiceIntentInfo info) {
	return packageName.equals(info.service.owner.packageName);
}
 
源代码19 项目: container   文件: VPackageManagerService.java
@Override
protected Object filterToLabel(PackageParser.ServiceIntentInfo filter) {
	return filter.service;
}
 
源代码20 项目: container   文件: VPackageManagerService.java
@Override
protected void dumpFilter(PrintWriter out, String prefix, PackageParser.ServiceIntentInfo filter) {

}