Android获取应用相关信息的工具类AppUtils

本文介绍了一个用于获取Android应用信息的工具类AppUtils,包括ApkInfo类和StringUtil类的使用。
摘要由CSDN通过智能技术生成

获取应用的相关工具类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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值