I changed the Jens answer above, because, as pointed out in the comments, the name will never be null, and an exception will be thrown instead.
private boolean isResourceIdInPackage(String packageName, int resId){ if(packageName == null || resId == 0){ return false; } Resources res = null; if(packageName.equals(getPackageName())){ res = getResources(); }else{ try{ res = getPackageManager().getResourcesForApplication(packageName); }catch(PackageManager.NameNotFoundException e){ Log.w(TAG, packageName + "does not contain " + resId + " ... " + e.getMessage()); } } if(res == null){ return false; } return isResourceIdInResources(res, resId); } private boolean isResourceIdInResources(Resources res, int resId){ try{ getResources().getResourceName(resId);
source share