获取Android应用签名

本章讲解下Android如何获取应用签名。
在某些场景下, 我们需要某应用的签名信息,签名信息存放在包里,所以我们需要获取包信息。

(1)获取已安装应用的所有包名
/**
 * 获取所有已安装应用的包名
 * @param paramContext
 */
private List getInstalledPackageName(Context paramContext){
    PackageManager localPackageManager = paramContext.getPackageManager();
    List localPackageInfos = localPackageManager.getInstalledPackages(0);
    List list = new ArrayList<>();
    for(PackageInfo packageInfo : localPackageInfos){
        list.add(packageInfo.packageName);
    }
    return list;
}
(2)获取指定应用的签名
private Signature[] getRawSignature(Context paramContext, String paramString) {
    if ((paramString == null) || (paramString.length() == 0)) {
        errout("获取签名失败,包名为 null");
        return null;
    }
    PackageManager localPackageManager = paramContext.getPackageManager();
    PackageInfo localPackageInfo;
    try {
        localPackageInfo = localPackageManager.getPackageInfo(paramString, PackageManager.GET_SIGNATURES);
        if (localPackageInfo == null) {
            errout("信息为 null, 包名 = " + paramString);
            return null;
        }
    } catch (PackageManager.NameNotFoundException localNameNotFoundException) {
        errout("包名没有找到...");
        return null;
    }
    return localPackageInfo.signatures;
}
(3)复制到粘贴板
String result = result_text.getText().toString().trim();
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 将文本内容放到系统剪贴板里。
cm.setText(result);
展示效果如下
图片.png

你可能感兴趣的:(获取Android应用签名)