Get resource ID from extra or from metadata. - Android App

Android examples for App:Manifest

Description

Get resource ID from extra or from metadata.

Demo Code


import java.util.Locale;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;

public class Main{
    private static final String TAG = "AboutUtils";
    /**// www .j a va 2 s.  co m
     * Get resource ID from extra or from metadata.
     * 
     * @param context
     * @param packagename
     * @param intent
     * @param extra
     * @param metadata
     * @return
     */
    public static int getResourceIdExtraOrMetadata(
            final MetaDataReader metaDataReader, 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 = metaDataReader.getBundle();

            if (md != null) {
                // Obtain resource ID and convert to resource name:
                int id = md.getInt(metadata);

                return id;
            } else {
                return 0;
            }

        }
    }
}

Related Tutorials