Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//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;
            }

        }
    }
}