类android.content.pm.PackageInfo源码实例Demo

下面列出了怎么用android.content.pm.PackageInfo的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: whiteboard   文件: Utils.java
/**
 * @param context
 * @param settings
 *            �������ò���ʵ��
 */
public void saveSettings(Context context, PainterSettings settings)
{
	SharedPreferences sp = context.getSharedPreferences(Commons.SETTINGS_STORAGE, Context.MODE_PRIVATE);
	SharedPreferences.Editor editor = sp.edit();

	try
	{
		PackageInfo pack = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
		editor.putInt(context.getString(R.string.settings_version), pack.versionCode);
	} catch (NameNotFoundException e)
	{
	}

	editor.putInt(context.getString(R.string.settings_orientation), settings.getOrientation());
	editor.putString(context.getString(R.string.settings_last_picture), settings.getLastPicture());
	editor.putFloat(context.getString(R.string.settings_brush_size), settings.getPreset().currentSize);
	editor.putInt(context.getString(R.string.settings_brush_color), settings.getPreset().currentColor);
	editor.putInt(context.getString(R.string.settings_brush_blur_style), (settings.getPreset().currentBlurType != null) ? settings.getPreset().currentBlurType.ordinal() + 1 : 0);
	editor.putInt(context.getString(R.string.settings_brush_blur_radius), settings.getPreset().currentBlurRadius);
	editor.putBoolean(context.getString(R.string.settings_force_open_file), settings.isForceOpenFile());
	editor.commit();
}
 
源代码2 项目: timecat   文件: CropImage.java
/**
 * Check if the app requests a specific permission in the manifest.
 *
 * @param permissionName the permission to check
 *
 * @return true - the permission in requested in manifest, false - not.
 */
public static boolean hasPermissionInManifest(@NonNull Context context, @NonNull String permissionName) {
    String packageName = context.getPackageName();
    try {
        PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
        final String[] declaredPermisisons = packageInfo.requestedPermissions;
        if (declaredPermisisons != null && declaredPermisisons.length > 0) {
            for (String p : declaredPermisisons) {
                if (p.equalsIgnoreCase(permissionName)) {
                    return true;
                }
            }
        }
    } catch (PackageManager.NameNotFoundException e) {
    }
    return false;
}
 
源代码3 项目: EasyProtector   文件: VirtualApkCheckUtil.java
/**
 * 检测原始的包名,多开应用会hook处理getPackageName方法
 * 顺着这个思路,如果在应用列表里出现了同样的包,那么认为该应用被多开了
 *
 * @param context
 * @param callback
 * @return
 */
public boolean checkByOriginApkPackageName(Context context, VirtualCheckCallback callback) {
    try {
        if (context == null)
            throw new IllegalArgumentException("you have to set context first");
        int count = 0;
        String packageName = context.getPackageName();
        PackageManager pm = context.getPackageManager();
        List<PackageInfo> pkgs = pm.getInstalledPackages(0);
        for (PackageInfo info : pkgs) {
            if (packageName.equals(info.packageName)) {
                count++;
            }
        }
        if (count > 1 && callback != null) callback.findSuspect();
        return count > 1;
    } catch (Exception ignore) {
    }
    return false;
}
 
源代码4 项目: AndroidBleManager   文件: AppUpgradeService.java
public boolean checkApkFile(String apkFilePath) {
    boolean result = false;
    try{
        PackageManager pManager = getPackageManager();
        PackageInfo pInfo = pManager.getPackageArchiveInfo(apkFilePath, PackageManager.GET_ACTIVITIES);
        if (pInfo == null) {
            result =  false;
        } else {
            result =  true;
        }
    } catch(Exception e) {
        result =  false;
        e.printStackTrace();
    }
    return result;
}
 
源代码5 项目: AndroidChangeSkin   文件: SkinManager.java
private boolean validPluginParams(String skinPath, String skinPkgName)
{
    if (TextUtils.isEmpty(skinPath) || TextUtils.isEmpty(skinPkgName))
    {
        return false;
    }

    File file = new File(skinPath);
    if (!file.exists())
        return false;

    PackageInfo info = getPackageInfo(skinPath);
    if (!info.packageName.equals(skinPkgName))
        return false;
    return true;
}
 
源代码6 项目: Android-Skin   文件: PackageUtil.java
public static String getApkPackageName(Context context,String apkPath) {
    try {
        if(context==null)
            return null;
        PackageManager pm = context.getPackageManager();
        if(SkinStringUtils.isNull(apkPath)){
            pm = context.getPackageManager();
        }
        PackageInfo info = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
        ApplicationInfo appInfo = null;
        if (info != null) {
            appInfo = info.applicationInfo;
            String packageName = appInfo.packageName;
            return packageName;
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}
 
源代码7 项目: android-sholi   文件: MainActivity.java
private void displayAboutDialog() {
    View view = getLayoutInflater().inflate(R.layout.about_dlg, null, false);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 0);
        TextView text = (TextView) view.findViewById(R.id.version_text);
        text.setText(getString(R.string.dialog_about_version,
                info.versionName, info.versionCode));
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }

    builder.setIcon(android.R.drawable.ic_dialog_info)
            .setTitle(R.string.dialog_about_title)
            .setView(view)
            .setNeutralButton(android.R.string.ok, null)
            .create()
            .show();
}
 
/**
 * 指定されたパッケージの中にデバイスプラグインが存在するかチェックし追加する.
 * パッケージの中にデバイスプラグインがない場合には何もしない。
 *
 * @param packageName パッケージ名
 */
private void checkAndAddDevicePlugin(final String packageName) {
    if (packageName == null) {
        throw new IllegalArgumentException("packageName is null.");
    }
    PackageManager pkgMgr = mContext.getPackageManager();
    try {
        int flag = PackageManager.GET_SERVICES | PackageManager.GET_RECEIVERS | PackageManager.GET_PROVIDERS;
        PackageInfo pkg = pkgMgr.getPackageInfo(packageName, flag);
        mLogger.info("PluginManager: get package info: " + pkg);
        if (pkg != null) {
            List<DevicePlugin> plugins = getInstalledPluginsForPackage(pkgMgr, pkg);
            mLogger.info("PluginManager: installed plugins: size=" + plugins.size());
            for (DevicePlugin plugin : filterPlugin(plugins)) {
                addDevicePlugin(plugin);
            }
        }
    } catch (NameNotFoundException e) {
        // NOP.
    }
}
 
public PackageInfo getPackageInfo(Integer flags) {
	if (packageInfoHashMap == null) {
		packageInfoHashMap = new HashMap<>();
	}
	PackageInfo packageInfo = packageInfoHashMap.get(flags);
	if (packageInfo == null) {
		packageInfo = FairyGlobal.getHostApplication().getPackageManager().getPackageArchiveInfo(getInstalledPath(), flags);
		if (packageInfo != null && packageInfo.applicationInfo != null) {
			packageInfo.applicationInfo.sourceDir = getInstalledPath();
			packageInfo.applicationInfo.publicSourceDir = getInstalledPath();
		}
		packageInfoHashMap.put(flags, packageInfo);
	}

	return packageInfo;
}
 
源代码10 项目: iGap-Android   文件: RequestUserLogin.java
private void infoApp() {

        PackageInfo pInfo = null;
        try {
            pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

        if (pInfo != null) {
            AppVersion = pInfo.versionName;
            AppBuildVersion = pInfo.versionCode;
        }
        Device = Build.BRAND;
        Language = Locale.getDefault().getDisplayLanguage();
    }
 
源代码11 项目: palmsuda   文件: Splash.java
public void getCurrentVersion() {
	try {
		PackageInfo info = this.getPackageManager().getPackageInfo(
				this.getPackageName(), 0);
		this.versionName = info.versionName;
		PalmSudaApp.versionName = this.versionName;

		Log.d(TAG, "Current version_name is " + versionName);

		TextView textVersion = (TextView) findViewById(R.id.textVersion);
		textVersion.setText(versionName);

	} catch (NameNotFoundException e) {
		e.printStackTrace();
	}
}
 
源代码12 项目: SAI   文件: SaiExportedAppMeta2.java
public static SaiExportedAppMeta2 createForPackage(Context context, String pkg, long exportTimestamp) throws PackageManager.NameNotFoundException {
    PackageManager pm = context.getPackageManager();
    PackageInfo packageInfo = context.getPackageManager().getPackageInfo(pkg, 0);

    SaiExportedAppMeta2 appMeta = new SaiExportedAppMeta2();
    appMeta.mPackage = packageInfo.packageName;
    appMeta.mLabel = packageInfo.applicationInfo.loadLabel(pm).toString();
    appMeta.mVersionName = packageInfo.versionName;

    if (Utils.apiIsAtLeast(Build.VERSION_CODES.P)) {
        appMeta.mVersionCode = packageInfo.getLongVersionCode();
    } else {
        appMeta.mVersionCode = (long) packageInfo.versionCode;
    }

    appMeta.mExportTimestamp = exportTimestamp;

    if (Utils.apiIsAtLeast(Build.VERSION_CODES.N)) {
        appMeta.mMinSdk = (long) packageInfo.applicationInfo.minSdkVersion;
        appMeta.mTargetSdk = (long) packageInfo.applicationInfo.targetSdkVersion;
    }

    appMeta.mIsSplitApk = packageInfo.applicationInfo.splitPublicSourceDirs != null && packageInfo.applicationInfo.splitPublicSourceDirs.length > 0;

    return appMeta;
}
 
源代码13 项目: SeeWeather   文件: VersionUtil.java
public static String getVersion(Context context) {
    try {
        PackageManager manager = context.getPackageManager();
        PackageInfo info = manager.getPackageInfo(context.getPackageName(), 0);
        return info.versionName;
    } catch (Exception e) {
        e.printStackTrace();
        return context.getString(R.string.can_not_find_version_name);
    }
}
 
源代码14 项目: ApkToolPlus   文件: SignatureUtils.java
public static String getCertMD5(Context context) {
    try {
        PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        Signature[] signs = packageInfo.signatures;
        if (signs.length > 0) {
            return getCertMD5(signs[0].toByteArray());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "";
}
 
源代码15 项目: android   文件: VpnProfile.java
public String getVersionEnvString(Context c) {
    String version = "unknown";
    try {
        PackageInfo packageinfo = c.getPackageManager().getPackageInfo(c.getPackageName(), 0);
        version = packageinfo.versionName;
    } catch (PackageManager.NameNotFoundException e) {
        VpnStatus.logException(e);
    }
    return String.format(Locale.US, "%s %s", c.getPackageName(), version);

}
 
源代码16 项目: Awesome-WanAndroid   文件: NetUtils.java
private static int getAppUid(@NonNull Context context) {
    if (sUId == -1) {
        PackageManager packageManager = context.getApplicationContext().getPackageManager();
        try {
            PackageInfo packageInfo = packageManager.getPackageInfo(context.getApplicationContext().getPackageName(), PackageManager.GET_META_DATA);
            if (packageInfo != null) {
                sUId = packageInfo.applicationInfo.uid;
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    return sUId;
}
 
源代码17 项目: firebase-android-sdk   文件: GrpcClientModule.java
public static String getSignature(@NonNull PackageManager pm, @NonNull String packageName) {
  try {
    PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
    if (packageInfo == null
        || packageInfo.signatures == null
        || packageInfo.signatures.length == 0
        || packageInfo.signatures[0] == null) {
      return null;
    }
    return signatureDigest(packageInfo.signatures[0]);
  } catch (PackageManager.NameNotFoundException e) {
    return null;
  }
}
 
源代码18 项目: android_9.0.0_r45   文件: ShortcutPackageInfo.java
/**
 * Set {@link #mVersionCode}, {@link #mLastUpdateTime} and {@link #mBackupAllowed}
 * from a {@link PackageInfo}.
 */
public void updateFromPackageInfo(@NonNull PackageInfo pi) {
    if (pi != null) {
        mVersionCode = pi.getLongVersionCode();
        mLastUpdateTime = pi.lastUpdateTime;
        mBackupAllowed = ShortcutService.shouldBackupApp(pi);
        mBackupAllowedInitialized = true;
    }
}
 
源代码19 项目: Plumble   文件: Preferences.java
private static void configureAboutPreferences(Context context, PreferenceScreen screen) {
    String version = "Unknown";
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        version = info.versionName;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    Preference versionPreference = screen.findPreference(VERSION_KEY);
    versionPreference.setSummary(version);
}
 
源代码20 项目: haystack   文件: PackageManagerService.java
@DexWrap
//<4.1// PackageInfo generatePackageInfo(PackageParser.Package p, int flags) {
/*>4.1*/ //<7.0// PackageInfo generatePackageInfo(PackageParser.Package p, int flags, int userId) {
/*>7.0*/ private PackageInfo generatePackageInfo(PackageSetting p, int flags, int userId) {
    //<4.1// PackageInfo pi = generatePackageInfo(p, flags);
    /*>4.1*/ PackageInfo pi = generatePackageInfo(p, flags, userId);
    if (p != null && pi != null) {
        //<4.0// pi = GeneratePackageInfoHookAccessor.hook(pi, mContext, p, flags, -1);
        /*>4.0*/ //<4.1// pi = GeneratePackageInfoHook.hook(pi, mContext, p, flags, -1);
        /*>4.1*/ //<7.0// pi = GeneratePackageInfoHook.hook(pi, mContext, p, flags, userId);
        /*>7.0*/ PackageParser.Package pp = p.pkg;
        /*>7.0*/ if (pp != null) pi = GeneratePackageInfoHook.hook(pi, mContext, pp, flags, userId);
    }
    return pi;
}
 
源代码21 项目: volley   文件: Volley.java
/**
 * Creates a default instance of the worker pool and calls {@link RequestQueue#start()} on it.
 *
 * @param context A {@link Context} to use for creating the cache dir.
 * @param stack An {@link HttpStack} to use for the network, or null for default.
 * @return A started {@link RequestQueue} instance.
 */
public static RequestQueue newRequestQueue(Context context, HttpStack stack) {
    File cacheDir = new File(context.getCacheDir(), DEFAULT_CACHE_DIR);

    String userAgent = null;
    try {
        String packageName = context.getPackageName();
        PackageInfo info = context.getPackageManager().getPackageInfo(packageName, 0);
        userAgent = packageName + "/" + info.versionCode;
    } catch (NameNotFoundException e) {
    }

    if (stack == null) {
        if (Build.VERSION.SDK_INT >= 9) {
            stack = new HurlStack(userAgent);
        } else {
            // Prior to Gingerbread, HttpUrlConnection was unreliable.
            // See: http://android-developers.blogspot.com/2011/09/androids-http-clients.html
            stack = new HttpClientStack(AndroidHttpClient.newInstance(userAgent));
        }
    }

    Network network = new BasicNetwork(stack);

    RequestQueue queue = new RequestQueue(new DiskLruBasedCache(cacheDir), network);
    queue.start();

    return queue;
}
 
源代码22 项目: BubbleCloudView   文件: Utils.java
public static Drawable getApkIcon(Context context, String apkPath) {
    PackageManager pm = context.getPackageManager();
    PackageInfo info = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
    if (info != null) {
        ApplicationInfo appInfo = info.applicationInfo;
        appInfo.sourceDir = apkPath;
        appInfo.publicSourceDir = apkPath;
        try {
            return appInfo.loadIcon(pm);
        } catch (OutOfMemoryError e) {
        }
    }
    return null;
}
 
源代码23 项目: NetGuard   文件: Util.java
public static String getSelfVersionName(Context context) {
    try {
        PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        return pInfo.versionName;
    } catch (PackageManager.NameNotFoundException ex) {
        return ex.toString();
    }
}
 
@Override
protected PackageInfo doInBackground(final String... packageName) {
    final PackageManager pm = mContext.getPackageManager();
    mContext = null; // Bazooka-powered anti-leak device
    try {
        final PackageInfo packageInfo = pm.getPackageInfo(packageName[0], 0 /* flags */);
        sCache.put(packageName[0], packageInfo);
        return packageInfo;
    } catch (android.content.pm.PackageManager.NameNotFoundException e) {
        return null;
    }
}
 
/**
 * コンポーネントのActivityInfoを取得する.
 *
 * @param context コンテキスト
 * @param packageName package name
 * @return コンポーネントのActivityInfo
 */
private static ActivityInfo getReceiverInfo(final Context context, final String packageName) {
    try {
        PackageManager pkgMgr = context.getPackageManager();
        PackageInfo pkg = pkgMgr.getPackageInfo(packageName, PackageManager.GET_RECEIVERS);
        if (pkg != null) {
            ActivityInfo[] receivers = pkg.receivers;
            if (receivers != null) {
                for (int i = 0; i < receivers.length; i++) {
                    String pkgName = receivers[i].packageName;
                    String className = receivers[i].name;
                    ComponentName component = new ComponentName(pkgName, className);
                    ActivityInfo receiverInfo = pkgMgr.getReceiverInfo(component, PackageManager.GET_META_DATA);
                    if (receiverInfo.metaData != null) {
                        Object xmlData = receiverInfo.metaData.get(PLUGIN_META_DATA);
                        if (xmlData instanceof Integer) {
                            XmlResourceParser xrp = receiverInfo.loadXmlMetaData(pkgMgr, PLUGIN_META_DATA);
                            if (xrp != null) {
                                return receiverInfo;
                            }
                        }
                    }
                }
            }
        }
        return null;
    } catch (NameNotFoundException e) {
        return null;
    }
}
 
源代码26 项目: BeMusic   文件: CrashHandler.java
public static String getAppVersion (Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        return info.versionName;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return "";
}
 
源代码27 项目: UtilsLib   文件: ApplicationUtil.java
/**
 * 获取应用程序的内部版本号
 *
 * @param context 上下文对象
 * @return 程序的内部版本号,用于比对升级用
 */
public static int getVersionCode(Context context) {
    try {
        PackageManager packageManager = context.getPackageManager();// 获取包的管理者
        PackageInfo packageInfo = packageManager.getPackageInfo(
                context.getPackageName(), 0);
        return packageInfo.versionCode;// 获取应用程序的版本名称
    } catch (PackageManager.NameNotFoundException e) {
        LogUtil.e(TAG, e);
    }
    return 0;
}
 
源代码28 项目: 365browser   文件: WebApkUpdateManager.java
/**
 * Reads the WebAPK's version code. Returns 0 on failure.
 */
private int readVersionCodeFromAndroidManifest(String webApkPackage) {
    try {
        PackageManager packageManager =
                ContextUtils.getApplicationContext().getPackageManager();
        PackageInfo packageInfo = packageManager.getPackageInfo(webApkPackage, 0);
        return packageInfo.versionCode;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return 0;
}
 
源代码29 项目: aptoide-client   文件: AppViewActivity.java
private void checkInstallation() {
            mButtonInstall.setEnabled(true);
            if (pay != null && pay.price.doubleValue() > 0) {
                isPaidToschedule = true;
//                mButtonInstall.setVisibility(View.GONE);
                InstallListener installListener = new InstallListener(iconUrl, appName, versionName, packageName, md5sum, isPaidApp());
                mButtonInstall.setOnClickListener(installListener);
            } else {
                PackageInfo info = getPackageInfo(getActivity(), packageName);
                if (info == null) {
                    mButtonInstall.setText(getString(R.string.install));
                    mButtonInstall.setOnClickListener(new InstallListener(iconUrl, appName, versionName, packageName, md5sum, isPaidApp()));
                    isInstalled = false;
                } else {
                    isInstalled = true;
                    try {
                        installedSignature = AptoideUtils.Algorithms.computeSHA1sumFromBytes(info.signatures[0].toByteArray()).toUpperCase(Locale.ENGLISH);
                    } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
                        Logger.printException(e);
                    }
                    if (versionCode > info.versionCode) {
                        isUpdate = true;
                        mButtonInstall.setText(getString(R.string.update));
                        mButtonInstall.setEnabled(true);
                        mButtonInstall.setOnClickListener(new InstallListener(iconUrl, appName, versionName, packageName, md5sum, isPaidApp()));
//                    UpdateAppVersionInstalled(info.versionName);
                    } else if (versionCode < info.versionCode) {
                        isUpdate = false;
                        mButtonInstall.setText(getString(R.string.downgrade));
                        mButtonInstall.setOnClickListener(new DowngradeListener(iconUrl, appName, info.versionName, versionName, info.packageName));
//                    UpdateAppVersionInstalled(info.versionName);
                    } else {
                        changebtInstalltoOpen();
                    }
                    getActivity().supportInvalidateOptionsMenu();
                }
            }

            setupInstallButton();
        }
 
源代码30 项目: Mobilyzer   文件: GCMManager.java
/**
 * @return Application's version code from the {@code PackageManager}.
 */
private static int getAppVersion(Context context) {
    try {
        PackageInfo packageInfo = context.getPackageManager()
                .getPackageInfo(context.getPackageName(), 0);
        return packageInfo.versionCode;
    } catch (NameNotFoundException e) {
        // should never happen
        throw new RuntimeException("Could not get package name: " + e);
    }
}
 
 类所在包
 同包方法