下面列出了android.content.pm.PackageManagerInternal#canAccessComponent() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private ArrayList<ResolveInfo> createFilterdResolveInfoList(List<ResolveInfo> list) {
if (list == null) {
return null;
}
final ArrayList<ResolveInfo> resultList = new ArrayList<>(list.size());
final PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class);
final int callingUid = Binder.getCallingUid();
final int callingUserId = UserHandle.getCallingUserId();
for (ResolveInfo info : list) {
if (pm.canAccessComponent(
callingUid, info.activityInfo.getComponentName(), callingUserId)) {
resultList.add(info);
}
}
return resultList;
}
private ArrayList<SearchableInfo> createFilterdSearchableInfoList(List<SearchableInfo> list) {
if (list == null) {
return null;
}
final ArrayList<SearchableInfo> resultList = new ArrayList<>(list.size());
final PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class);
final int callingUid = Binder.getCallingUid();
final int callingUserId = UserHandle.getCallingUserId();
for (SearchableInfo info : list) {
if (pm.canAccessComponent(callingUid, info.getSearchActivity(), callingUserId)) {
resultList.add(info);
}
}
return resultList;
}
/**
* Gets the name of the global search activity.
*/
public synchronized ComponentName getGlobalSearchActivity() {
final PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class);
final int callingUid = Binder.getCallingUid();
final int callingUserId = UserHandle.getCallingUserId();
if (mCurrentGlobalSearchActivity != null
&& pm.canAccessComponent(callingUid, mCurrentGlobalSearchActivity, callingUserId)) {
return mCurrentGlobalSearchActivity;
}
return null;
}
/**
* Gets the name of the web search activity.
*/
public synchronized ComponentName getWebSearchActivity() {
final PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class);
final int callingUid = Binder.getCallingUid();
final int callingUserId = UserHandle.getCallingUserId();
if (mWebSearchActivity != null
&& pm.canAccessComponent(callingUid, mWebSearchActivity, callingUserId)) {
return mWebSearchActivity;
}
return null;
}