Example usage for android.content.pm PackageManager GET_META_DATA

List of usage examples for android.content.pm PackageManager GET_META_DATA

Introduction

In this page you can find the example usage for android.content.pm PackageManager GET_META_DATA.

Prototype

int GET_META_DATA

To view the source code for android.content.pm PackageManager GET_META_DATA.

Click Source Link

Document

ComponentInfo flag: return the ComponentInfo#metaData data android.os.Bundle s that are associated with a component.

Usage

From source file:org.onebusaway.android.util.UIUtils.java

/**
 * Opens a "Contact Us" email, based on the currently selected region
 *
 * @param googleApiClient The GoogleApiClient being used to obtain fused provider updates, or
 *                        null if one isn't available
 *///from  ww  w .  jav a  2 s.c  om
public static void sendContactEmail(Context c, GoogleApiClient googleApiClient) {
    PackageManager pm = c.getPackageManager();
    PackageInfo appInfo;
    try {
        appInfo = pm.getPackageInfo(c.getPackageName(), PackageManager.GET_META_DATA);
    } catch (PackageManager.NameNotFoundException e) {
        // Do nothing, perhaps we'll get to show it again? Or never.
        return;
    }
    ObaRegion region = Application.get().getCurrentRegion();
    if (region == null) {
        return;
    }

    Location loc = Application.getLastKnownLocation(c, googleApiClient);

    // appInfo.versionName
    // Build.MODEL
    // Build.VERSION.RELEASE
    // Build.VERSION.SDK
    // %s\nModel: %s\nOS Version: %s\nSDK Version: %s\
    final String body = c.getString(R.string.bug_report_body, appInfo.versionName, Build.MODEL,
            Build.VERSION.RELEASE, Build.VERSION.SDK_INT, LocationUtils.printLocationDetails(loc));
    Intent send = new Intent(Intent.ACTION_SEND);
    send.putExtra(Intent.EXTRA_EMAIL, new String[] { region.getContactEmail() });
    send.putExtra(Intent.EXTRA_SUBJECT, c.getString(R.string.bug_report_subject));
    send.putExtra(Intent.EXTRA_TEXT, body);
    send.setType("message/rfc822");
    try {
        c.startActivity(Intent.createChooser(send, c.getString(R.string.bug_report_subject)));
    } catch (ActivityNotFoundException e) {
        Toast.makeText(c, R.string.bug_report_error, Toast.LENGTH_LONG).show();
    }
}

From source file:com.sentaroh.android.TaskAutomation.Config.ActivityMain.java

final private String getApplVersionName() {
    try {/* www.j  ava2s  . com*/
        String packegeName = getPackageName();
        PackageInfo packageInfo = getPackageManager().getPackageInfo(packegeName, PackageManager.GET_META_DATA);
        return packageInfo.versionName;
    } catch (NameNotFoundException e) {
        return "";
    }
}

From source file:com.sentaroh.android.TaskAutomation.Config.ActivityMain.java

final private String setApplVersionName() {
    String ver = "";
    String packegeName = getPackageName();
    PackageInfo packageInfo;//from ww  w. jav a 2 s . com
    try {
        packageInfo = getPackageManager().getPackageInfo(packegeName, PackageManager.GET_META_DATA);
        ver = packageInfo.versionName;
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }
    return ver;
}

From source file:com.android.settings.HWSettings.java

private void getMetaData() {
    try {/*w  w w  .java  2  s  .com*/
        ActivityInfo ai = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
        if (ai == null || ai.metaData == null)
            return;
        mTopLevelHeaderId = ai.metaData.getInt(META_DATA_KEY_HEADER_ID);
        mFragmentClass = ai.metaData.getString(META_DATA_KEY_FRAGMENT_CLASS);

        // Check if it has a parent specified and create a Header object
        final int parentHeaderTitleRes = ai.metaData.getInt(META_DATA_KEY_PARENT_TITLE);
        String parentFragmentClass = ai.metaData.getString(META_DATA_KEY_PARENT_FRAGMENT_CLASS);
        if (parentFragmentClass != null) {
            mParentHeader = new Header();
            mParentHeader.fragment = parentFragmentClass;
            if (parentHeaderTitleRes != 0) {
                mParentHeader.title = getResources().getString(parentHeaderTitleRes);
            }
        }
    } catch (NameNotFoundException nnfe) {
        // No recovery
    }
}

From source file:dev.ukanth.ufirewall.Api.java

/**
 * @param ctx application context (mandatory)
 * @return a list of applications//from  w  w w. j a  v  a  2s. co m
 */
public static List<PackageInfoData> getApps(Context ctx, GetAppList appList) {

    initSpecial();
    if (applications != null && applications.size() > 0) {
        // return cached instance
        return applications;
    }

    final SharedPreferences defaultPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
    final boolean enableVPN = defaultPrefs.getBoolean("enableVPN", false);
    final boolean enableLAN = defaultPrefs.getBoolean("enableLAN", false);
    final boolean enableRoam = defaultPrefs.getBoolean("enableRoam", true);

    final SharedPreferences prefs = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);

    final String savedPkg_wifi_uid = prefs.getString(PREF_WIFI_PKG_UIDS, "");
    final String savedPkg_3g_uid = prefs.getString(PREF_3G_PKG_UIDS, "");
    final String savedPkg_roam_uid = prefs.getString(PREF_ROAMING_PKG_UIDS, "");
    final String savedPkg_vpn_uid = prefs.getString(PREF_VPN_PKG_UIDS, "");
    final String savedPkg_lan_uid = prefs.getString(PREF_LAN_PKG_UIDS, "");

    List<Integer> selected_wifi = new ArrayList<Integer>();
    List<Integer> selected_3g = new ArrayList<Integer>();
    List<Integer> selected_roam = new ArrayList<Integer>();
    List<Integer> selected_vpn = new ArrayList<Integer>();
    List<Integer> selected_lan = new ArrayList<Integer>();

    selected_wifi = getListFromPref(savedPkg_wifi_uid);
    selected_3g = getListFromPref(savedPkg_3g_uid);

    if (enableRoam) {
        selected_roam = getListFromPref(savedPkg_roam_uid);
    }
    if (enableVPN) {
        selected_vpn = getListFromPref(savedPkg_vpn_uid);
    }
    if (enableLAN) {
        selected_lan = getListFromPref(savedPkg_lan_uid);
    }
    //revert back to old approach

    //always use the defaul preferences to store cache value - reduces the application usage size
    final SharedPreferences cachePrefs = ctx.getSharedPreferences("AFWallPrefs", Context.MODE_PRIVATE);

    int count = 0;
    try {
        final PackageManager pkgmanager = ctx.getPackageManager();
        final List<ApplicationInfo> installed = pkgmanager
                .getInstalledApplications(PackageManager.GET_META_DATA);
        SparseArray<PackageInfoData> syncMap = new SparseArray<PackageInfoData>();
        final Editor edit = cachePrefs.edit();
        boolean changed = false;
        String name = null;
        String cachekey = null;
        final String cacheLabel = "cache.label.";
        PackageInfoData app = null;
        ApplicationInfo apinfo = null;

        for (int i = 0; i < installed.size(); i++) {
            //for (final ApplicationInfo apinfo : installed) {
            count = count + 1;
            apinfo = installed.get(i);

            if (appList != null) {
                appList.doProgress(count);
            }

            boolean firstseen = false;
            app = syncMap.get(apinfo.uid);
            // filter applications which are not allowed to access the Internet
            if (app == null && PackageManager.PERMISSION_GRANTED != pkgmanager
                    .checkPermission(Manifest.permission.INTERNET, apinfo.packageName)) {
                continue;
            }
            // try to get the application label from our cache - getApplicationLabel() is horribly slow!!!!
            cachekey = cacheLabel + apinfo.packageName;
            name = prefs.getString(cachekey, "");
            if (name.length() == 0) {
                // get label and put on cache
                name = pkgmanager.getApplicationLabel(apinfo).toString();
                edit.putString(cachekey, name);
                changed = true;
                firstseen = true;
            }
            if (app == null) {
                app = new PackageInfoData();
                app.uid = apinfo.uid;
                app.names = new ArrayList<String>();
                app.names.add(name);
                app.appinfo = apinfo;
                app.pkgName = apinfo.packageName;
                syncMap.put(apinfo.uid, app);
            } else {
                app.names.add(name);
            }
            app.firstseen = firstseen;
            // check if this application is selected
            if (!app.selected_wifi && Collections.binarySearch(selected_wifi, app.uid) >= 0) {
                app.selected_wifi = true;
            }
            if (!app.selected_3g && Collections.binarySearch(selected_3g, app.uid) >= 0) {
                app.selected_3g = true;
            }
            if (enableRoam && !app.selected_roam && Collections.binarySearch(selected_roam, app.uid) >= 0) {
                app.selected_roam = true;
            }
            if (enableVPN && !app.selected_vpn && Collections.binarySearch(selected_vpn, app.uid) >= 0) {
                app.selected_vpn = true;
            }
            if (enableLAN && !app.selected_lan && Collections.binarySearch(selected_lan, app.uid) >= 0) {
                app.selected_lan = true;
            }

        }

        List<PackageInfoData> specialData = new ArrayList<PackageInfoData>();
        specialData.add(new PackageInfoData(SPECIAL_UID_ANY, ctx.getString(R.string.all_item),
                "dev.afwall.special.any"));
        specialData.add(new PackageInfoData(SPECIAL_UID_KERNEL, ctx.getString(R.string.kernel_item),
                "dev.afwall.special.kernel"));
        specialData.add(new PackageInfoData(SPECIAL_UID_TETHER, ctx.getString(R.string.tethering_item),
                "dev.afwall.special.tether"));
        //specialData.add(new PackageInfoData(SPECIAL_UID_DNSPROXY, ctx.getString(R.string.dnsproxy_item), "dev.afwall.special.dnsproxy"));
        specialData.add(new PackageInfoData(SPECIAL_UID_NTP, ctx.getString(R.string.ntp_item),
                "dev.afwall.special.ntp"));
        specialData
                .add(new PackageInfoData("root", ctx.getString(R.string.root_item), "dev.afwall.special.root"));
        specialData.add(new PackageInfoData("media", "Media server", "dev.afwall.special.media"));
        specialData.add(new PackageInfoData("vpn", "VPN networking", "dev.afwall.special.vpn"));
        specialData.add(new PackageInfoData("shell", "Linux shell", "dev.afwall.special.shell"));
        specialData.add(new PackageInfoData("gps", "GPS", "dev.afwall.special.gps"));
        specialData.add(new PackageInfoData("adb", "ADB (Android Debug Bridge)", "dev.afwall.special.adb"));

        if (specialApps == null) {
            specialApps = new HashMap<String, Integer>();
        }
        for (int i = 0; i < specialData.size(); i++) {
            app = specialData.get(i);
            specialApps.put(app.pkgName, app.uid);
            //default DNS/NTP
            if (app.uid != -1 && syncMap.get(app.uid) == null) {
                // check if this application is allowed
                if (!app.selected_wifi && Collections.binarySearch(selected_wifi, app.uid) >= 0) {
                    app.selected_wifi = true;
                }
                if (!app.selected_3g && Collections.binarySearch(selected_3g, app.uid) >= 0) {
                    app.selected_3g = true;
                }
                if (enableRoam && !app.selected_roam && Collections.binarySearch(selected_roam, app.uid) >= 0) {
                    app.selected_roam = true;
                }
                if (enableVPN && !app.selected_vpn && Collections.binarySearch(selected_vpn, app.uid) >= 0) {
                    app.selected_vpn = true;
                }
                if (enableLAN && !app.selected_lan && Collections.binarySearch(selected_lan, app.uid) >= 0) {
                    app.selected_lan = true;
                }
                syncMap.put(app.uid, app);
            }
        }

        if (changed) {
            edit.commit();
        }
        /* convert the map into an array */
        applications = new ArrayList<PackageInfoData>();
        for (int i = 0; i < syncMap.size(); i++) {
            applications.add(syncMap.valueAt(i));
        }

        return applications;
    } catch (Exception e) {
        alert(ctx, ctx.getString(R.string.error_common) + e);
    }
    return null;
}

From source file:com.irccloud.android.Notifications.java

public void updateTeslaUnreadCount() {
    try {/*from   w  w  w.j  a v a  2s . c om*/
        IRCCloudApplication.getInstance().getApplicationContext().getPackageManager()
                .getPackageInfo("com.teslacoilsw.notifier", PackageManager.GET_META_DATA);
    } catch (PackageManager.NameNotFoundException e) {
        return;
    }

    int count = 0;

    synchronized (mNotifications) {
        for (int i = 0; i < mNotifications.size(); i++) {
            Notification n = mNotifications.get(i);
            if (n.bid != excludeBid) {
                count++;
            }
        }
    }

    try {
        ContentValues cv = new ContentValues();
        cv.put("tag",
                IRCCloudApplication.getInstance().getApplicationContext().getPackageManager()
                        .getLaunchIntentForPackage(
                                IRCCloudApplication.getInstance().getApplicationContext().getPackageName())
                        .getComponent().flattenToString());
        cv.put("count", count);
        IRCCloudApplication.getInstance().getApplicationContext().getContentResolver()
                .insert(Uri.parse("content://com.teslacoilsw.notifier/unread_count"), cv);
    } catch (IllegalArgumentException ex) {
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

From source file:net.kidlogger.kidlogger.KLService.java

private void doScanTask() {
    ActivityManager actMng = (ActivityManager) KLService.this.getSystemService(ACTIVITY_SERVICE);
    List<RunningTaskInfo> taskInfo = actMng.getRunningTasks(1);
    String packageName = taskInfo.get(0).topActivity.getPackageName();

    if (!packageName.equalsIgnoreCase(prevPack)) {
        PackageManager pm = getPackageManager();
        String currTask;// ww  w .  ja v  a 2s.co  m
        //prevPack = packageName;
        prevPack = new String(packageName);
        try {
            CharSequence cs = pm
                    .getApplicationLabel(pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA));
            currTask = cs.toString();
        } catch (Exception e) {
            currTask = "unknown";
        }

        if (!currTask.equals("unknown")) {
            final String ct = new String(currTask);
            new Thread(new Runnable() {
                public void run() {
                    sync.writeLog(".htm", Templates.getApiLog(ct));
                }
            }).start();
            //WriteThread wt = new WriteThread(sync, ".htm", Templates.getApiLog(currTask));
        }
    }
}

From source file:com.android.incallui.widget.multiwaveview.GlowPadView.java

/**
 * Searches the given package for a resource to use to replace the Drawable on the
 * target with the given resource id//  w  w w .j  a  v a 2  s.com
 * @param component of the .apk that contains the resource
 * @param name of the metadata in the .apk
 * @param existingResId the resource id of the target to search for
 * @return true if found in the given package and replaced at least one target Drawables
 */
public boolean replaceTargetDrawablesIfPresent(ComponentName component, String name, int existingResId) {
    if (existingResId == 0)
        return false;

    boolean replaced = false;
    if (component != null) {
        try {
            PackageManager packageManager = getContext().getPackageManager();
            // Look for the search icon specified in the activity meta-data
            Bundle metaData = packageManager.getActivityInfo(component, PackageManager.GET_META_DATA).metaData;
            if (metaData != null) {
                int iconResId = metaData.getInt(name);
                if (iconResId != 0) {
                    Resources res = packageManager.getResourcesForActivity(component);
                    replaced = replaceTargetDrawables(res, existingResId, iconResId);
                }
            }
        } catch (NameNotFoundException e) {
            Log.w(TAG, "Failed to swap drawable; " + component.flattenToShortString() + " not found", e);
        } catch (Resources.NotFoundException nfe) {
            Log.w(TAG, "Failed to swap drawable from " + component.flattenToShortString(), nfe);
        }
    }
    if (!replaced) {
        // Restore the original drawable
        replaceTargetDrawables(getContext().getResources(), existingResId, existingResId);
    }
    return replaced;
}

From source file:com.irccloud.android.data.collection.NotificationsList.java

public void updateTeslaUnreadCount() {
    try {/*from   ww  w  .ja va 2s . c o  m*/
        IRCCloudApplication.getInstance().getApplicationContext().getPackageManager()
                .getPackageInfo("com.teslacoilsw.notifier", PackageManager.GET_META_DATA);
    } catch (PackageManager.NameNotFoundException e) {
        return;
    }

    try {
        ContentValues cv = new ContentValues();
        cv.put("tag",
                IRCCloudApplication.getInstance().getApplicationContext().getPackageManager()
                        .getLaunchIntentForPackage(
                                IRCCloudApplication.getInstance().getApplicationContext().getPackageName())
                        .getComponent().flattenToString());
        synchronized (dbLock) {
            cv.put("count", new Select().count().from(Notification.class)
                    .where(Condition.column(Notification$Table.NICK).isNotNull()).count());
        }
        IRCCloudApplication.getInstance().getApplicationContext().getContentResolver()
                .insert(Uri.parse("content://com.teslacoilsw.notifier/unread_count"), cv);
    } catch (IllegalArgumentException ex) {
    } catch (Exception ex) {
        NetworkConnection.printStackTraceToCrashlytics(ex);
    }
}

From source file:de.tudarmstadt.dvs.myhealthassistant.myhealthhub.services.messagehandler.MessageHandler.java

/**
 * Verifies if the package is installed using the PackageManager and the given package name
 * @param packageName/*from   w  ww .j av a  2  s .  co  m*/
 * @return Returns true if package is installed
 */
public boolean isPackageInstalled(String packageName) {
    if (packageName == null)
        return false;
    PackageManager pm = getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(packageName, PackageManager.GET_META_DATA);
    } catch (NameNotFoundException e) {
        return false;
    }
    return true;
}