public static Uri getResourceUri(Context context, int res) {
try {
Context packageContext = context.createPackageContext(context.getPackageName(),
Context.CONTEXT_RESTRICTED);
Resources resources = packageContext.getResources();
String appPkg = packageContext.getPackageName();
String resPkg = resources.getResourcePackageName(res);
String type = resources.getResourceTypeName(res);
String name = resources.getResourceEntryName(res);
Uri.Builder uriBuilder = new Uri.Builder();
uriBuilder.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE);
uriBuilder.encodedAuthority(appPkg);
uriBuilder.appendEncodedPath(type);
if (!appPkg.equals(resPkg)) {
uriBuilder.appendEncodedPath(resPkg + ":" + name);
} else {
uriBuilder.appendEncodedPath(name);
}
return uriBuilder.build();
} catch (Exception e) {
return null;
}
}
try {
Context packageContext = context.createPackageContext(context.getPackageName(),
Context.CONTEXT_RESTRICTED);
Resources resources = packageContext.getResources();
String appPkg = packageContext.getPackageName();
String resPkg = resources.getResourcePackageName(res);
String type = resources.getResourceTypeName(res);
String name = resources.getResourceEntryName(res);
Uri.Builder uriBuilder = new Uri.Builder();
uriBuilder.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE);
uriBuilder.encodedAuthority(appPkg);
uriBuilder.appendEncodedPath(type);
if (!appPkg.equals(resPkg)) {
uriBuilder.appendEncodedPath(resPkg + ":" + name);
} else {
uriBuilder.appendEncodedPath(name);
}
return uriBuilder.build();
} catch (Exception e) {
return null;
}
}