获取应用的相关工具类AppUtils如下:
import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
public class AppUtils
{
/**
* 获取packInfo
*/
public static PackageInfo getPackageInfo(Context context, String packageName, int flag)
{
PackageInfo rlt = null;
if (null == context || StringUtil.isStringEmpty(packageName))
{
return rlt;
}
try
{
PackageManager pm = context.getPackageManager();
if (pm != null)
{
rlt = pm.getPackageInfo(packageName, flag);
}
} catch (PackageManager.NameNotFoundException e)
{
// Log.e("找不到该包名");
}
return rlt;
}
/**
* 获取签名
* @param context
* @param pakeName
* @return
*/
public static Signature[] getSignature(Context context, String pakeName)
{
Signature[] rlt = null;
PackageInfo packInfo = getPackageInfo(context, pakeName, PackageManager.GET_SIGNATURES);
if (null != packInfo)
{
rlt = packInfo.signatures;
}
return rlt;
}
/**
* 获取包名
*/
public static String getPackage(Context context) {
return StringUtil.setStringIfEmpty(context.getPackageName());
}
/**
* 获取签名MD5
*/
public static String getSignatureMd5(Context context, String pakeName) {
String rlt = null;
Signature[] signs = getSignature(context, pakeName);
if (null != signs && signs.length > 0) {
StringBuffer sb = new StringBuffer();
for (Signature sig : signs) {
sb.append(sig.toCharsString());
}
// rlt = SecUtils.getInformationFingerprintByMD5(sb.toString(), StrCharset.UTF_8);
}
return StringUtil.isStringEmpty(rlt) ? null : rlt;
}
/**
* 获取app名称
*/
public static String getAppName(Context context) {
if (null == context) {
return null;
}
PackageManager packageManager = context.getPackageManager();
PackageInfo pakeInfo = getPackageInfo(context, context.getPackageName(), PackageManager
.GET_UNINSTALLED_PACKAGES);
if (pakeInfo != null) {
ApplicationInfo appInfo = pakeInfo.applicationInfo;
return appInfo.loadLabel(packageManager)
.toString();
}
return null;
}
/**
* 获取app版本名称
*/
public static String getAppVersionName(Context context) {
if (null == context) {
return null;
}
PackageInfo packageInfo = getPackageInfo(context, context.getPackageName(), PackageManager
.GET_UNINSTALLED_PACKAGES);
return null == packageInfo ? null : packageInfo.versionName;
}
/**
* 获取app版本号
*/
public static int getAppVersionCode(Context context, String pakeName) {
if (null == context