Java tutorial
//package com.java2s; //License from project: Open Source License import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; import android.os.Bundle; import android.util.Log; public class Main { private static final String TAG = "AboutUtils"; /** * Get resource ID from extra or from metadata. * * @param context * @param packagename * @param intent * @param extra * @param metadata * @return */ public static int getResourceIdExtraOrMetadata(final Context context, final String packagename, final Intent intent, final String extra, final String metadata) { if (intent.hasExtra(extra) && intent.getStringExtra(extra) != null) { int id = 0; try { String resourcename = intent.getStringExtra(extra); Resources resources = context.getPackageManager().getResourcesForApplication(packagename); Log.i(TAG, "Looking up resource Id for " + resourcename); id = resources.getIdentifier(resourcename, "", packagename); } catch (NameNotFoundException e) { Log.e(TAG, "Package name not found", e); } return id; } else { //Try meta data of package Bundle md = null; try { md = context.getPackageManager().getApplicationInfo(packagename, PackageManager.GET_META_DATA).metaData; } catch (NameNotFoundException e) { Log.e(TAG, "Package name not found", e); } if (md != null) { // Obtain resource ID and convert to resource name: int id = md.getInt(metadata); return id; } else { return 0; } } } }