Example usage for android.content.pm PackageManager SIGNATURE_MATCH

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

Introduction

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

Prototype

int SIGNATURE_MATCH

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

Click Source Link

Document

Signature check result: this is returned by #checkSignatures if all signatures on the two packages match.

Usage

From source file:org.fox.ttrss.OnlineActivity.java

public void checkTrial(boolean notify) {
    boolean isTrial = getPackageManager().checkSignatures(getPackageName(),
            "org.fox.ttrss.key") != PackageManager.SIGNATURE_MATCH;

    if (isTrial) {
        long firstStart = m_prefs.getLong("date_firstlaunch_trial", -1);

        if (firstStart == -1) {
            firstStart = System.currentTimeMillis();

            SharedPreferences.Editor editor = m_prefs.edit();
            editor.putLong("date_firstlaunch_trial", firstStart);
            editor.commit();/*  w ww  .  j  a  va  2  s  .c o m*/
        }

        if (!notify && System.currentTimeMillis() > firstStart + (TRIAL_DAYS * 24 * 60 * 60 * 1000)) {

            AlertDialog.Builder builder = new AlertDialog.Builder(this).setTitle(R.string.trial_expired)
                    .setMessage(R.string.trial_expired_message).setCancelable(false)
                    .setPositiveButton(getString(R.string.trial_purchase), new OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                            openUnlockUrl();
                            finish();

                        }
                    }).setNegativeButton(getString(R.string.cancel), new OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                            finish();

                        }
                    });

            AlertDialog dialog = builder.create();
            dialog.show();

        } else {
            long daysLeft = Math
                    .round((firstStart + (TRIAL_DAYS * 24 * 60 * 60 * 1000) - System.currentTimeMillis())
                            / (24 * 60 * 60 * 1000));

            if (notify) {
                toast(getString(R.string.trial_mode_prompt, Long.valueOf(daysLeft)));
            }
        }
    } else if (notify) {
        //toast(R.string.trial_thanks);
    }
}

From source file:net.bluecarrot.lite.MainActivity.java

protected boolean isProInstalled(Context context) {
    // the packagename of the 'key' app
    String proPackage = "it.rignanese.leo.donationkey1";

    // get the package manager
    final PackageManager pm = context.getPackageManager();

    // get a list of installed packages
    List<PackageInfo> list = pm.getInstalledPackages(PackageManager.GET_DISABLED_COMPONENTS);

    // let's iterate through the list
    Iterator<PackageInfo> i = list.iterator();
    while (i.hasNext()) {
        PackageInfo p = i.next();//w  ww  .j  a  va2s  . c  om
        // check if proPackage is in the list AND whether that package is signed
        //  with the same signature as THIS package
        if ((p.packageName.equals(proPackage)) && (pm.checkSignatures(context.getPackageName(),
                p.packageName) == PackageManager.SIGNATURE_MATCH))
            return true;
    }
    return false;
}

From source file:ro.ciubex.keepscreenlock.MainApplication.java

/**
 * Check for pro version.//  www.  j av  a  2s  .  c o m
 *
 * @return True if pro version exist.
 */
public boolean isProPresent() {
    PackageManager pm = getPackageManager();
    boolean success = false;
    try {
        success = (PackageManager.SIGNATURE_MATCH == pm.checkSignatures(this.getPackageName(),
                "ro.ciubex.keepscreenlockpro"));
        logD(TAG, "isProPresent: " + success);
    } catch (Exception e) {
        logE(TAG, "isProPresent: " + e.getMessage(), e);
    }
    return success;
}

From source file:com.grazerss.EntryManager.java

public final boolean isProVersion() {
    if (proVersion == null) {
        final int checkSignature = ctx.getPackageManager().checkSignatures("com.grazerss",
                EntryManager.PRO_PACKAGE_NAME);

        proVersion = (checkSignature == PackageManager.SIGNATURE_MATCH)
                || (checkSignature == PackageManager.SIGNATURE_NEITHER_SIGNED);

        if (!proVersion) {
            if ("mariano.kamp@gmail.com".equals(getEmail())
                    || "androidnewsreader@googlemail.com".equals(getEmail())
                    || "androidnewsreader@gmail.com".equals(getEmail())) {
                proVersion = true;//from   w w  w  .  j  av  a2  s . c o  m
            }
        }
    }
    return proVersion;
}

From source file:com.newsrob.EntryManager.java

public final boolean isProVersion() {

    if (proVersion == null) {
        final int checkSignature = ctx.getPackageManager().checkSignatures(LEGACY_PACKAGE_NAME,
                EntryManager.PRO_PACKAGE_NAME);
        proVersion = checkSignature == PackageManager.SIGNATURE_MATCH
                || checkSignature == PackageManager.SIGNATURE_NEITHER_SIGNED;
    }/*from  ww w. j a  va 2  s.c  o m*/
    return proVersion;
}

From source file:com.androzic.Androzic.java

public void onCreateEx() {
    try {//from  w ww.  ja  va  2s  . co  m
        (new File(Environment.getExternalStorageDirectory(), WordManager.FOLDER)).mkdirs();
        (new File(Environment.getExternalStorageDirectory(), WordManager.FOLDER + "/ghiam")).mkdirs();
    } catch (Throwable e) {
    }

    if (initialized)
        return;

    AndroidGraphicFactory.createInstance(this);
    try {
        OzfDecoder.useNativeCalls();
    } catch (UnsatisfiedLinkError e) {
        Toast.makeText(Androzic.this, "Failed to initialize native library: " + e.getMessage(),
                Toast.LENGTH_LONG).show();
    }

    Resources resources = getResources();
    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
    Configuration config = resources.getConfiguration();

    renderingThread = new HandlerThread("RenderingThread");
    renderingThread.start();

    longOperationsThread = new HandlerThread("LongOperationsThread");
    longOperationsThread.setPriority(Thread.MIN_PRIORITY);
    longOperationsThread.start();

    uiHandler = new Handler();
    mapsHandler = new Handler(longOperationsThread.getLooper());

    // We silently initialize data uri to let location service restart after crash
    File datadir = new File(
            settings.getString(getString(R.string.pref_folder_data), Environment.getExternalStorageDirectory()
                    + File.separator + resources.getString(R.string.def_folder_data)));
    setDataPath(Androzic.PATH_DATA, datadir.getAbsolutePath());

    setInstance(this);

    String intentToCheck = "com.androzic.donate";
    String myPackageName = getPackageName();
    PackageManager pm = getPackageManager();
    PackageInfo pi;
    try {
        pi = pm.getPackageInfo(intentToCheck, 0);
        isPaid = (pm.checkSignatures(myPackageName, pi.packageName) == PackageManager.SIGNATURE_MATCH);
    } catch (NameNotFoundException e) {
        //         e.printStackTrace();
    }

    File sdcard = Environment.getExternalStorageDirectory();
    Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(this, sdcard.getAbsolutePath()));

    DisplayMetrics displayMetrics = new DisplayMetrics();

    WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    if (wm != null) {
        wm.getDefaultDisplay().getMetrics(displayMetrics);
    } else {
        displayMetrics.setTo(resources.getDisplayMetrics());
    }
    BaseMap.viewportWidth = displayMetrics.widthPixels;
    BaseMap.viewportHeight = displayMetrics.heightPixels;

    charset = settings.getString(getString(R.string.pref_charset), "UTF-8");
    String lang = settings.getString(getString(R.string.pref_locale), "");
    if (!"".equals(lang) && !config.locale.getLanguage().equals(lang)) {
        locale = new Locale(lang);
        Locale.setDefault(locale);
        config.locale = locale;
        resources.updateConfiguration(config, resources.getDisplayMetrics());
    }

    magInterval = resources.getInteger(R.integer.def_maginterval) * 1000;

    overlayManager = new OverlayManager(longOperationsThread.getLooper());
    TooltipManager.initialize(this);

    onSharedPreferenceChanged(settings, getString(R.string.pref_unitcoordinate));
    onSharedPreferenceChanged(settings, getString(R.string.pref_unitdistance));
    onSharedPreferenceChanged(settings, getString(R.string.pref_unitspeed));
    onSharedPreferenceChanged(settings, getString(R.string.pref_unitelevation));
    onSharedPreferenceChanged(settings, getString(R.string.pref_unitangle));
    onSharedPreferenceChanged(settings, getString(R.string.pref_unitanglemagnetic));
    onSharedPreferenceChanged(settings, getString(R.string.pref_unitprecision));
    onSharedPreferenceChanged(settings, getString(R.string.pref_unitsunrise));
    onSharedPreferenceChanged(settings, getString(R.string.pref_mapadjacent));
    onSharedPreferenceChanged(settings, getString(R.string.pref_vectormap_textscale));
    onSharedPreferenceChanged(settings, getString(R.string.pref_onlinemapprescalefactor));
    onSharedPreferenceChanged(settings, getString(R.string.pref_onlinemapexpiration));
    onSharedPreferenceChanged(settings, getString(R.string.pref_mapcropborder));
    onSharedPreferenceChanged(settings, getString(R.string.pref_mapdrawborder));
    onSharedPreferenceChanged(settings, getString(R.string.pref_showwaypoints));
    onSharedPreferenceChanged(settings, getString(R.string.pref_showcurrenttrack));
    onSharedPreferenceChanged(settings, getString(R.string.pref_showaccuracy));
    onSharedPreferenceChanged(settings, getString(R.string.pref_showdistance_int));

    settings.registerOnSharedPreferenceChangeListener(this);

    initialized = true;
}