zoukankan      html  css  js  c++  java
  • Android 判断debug签名和release签名

    判断debug签名和release签名

    思路是:
    可以获取到package里的签名信息Signature对象,在Signature对象里有hashCode()方法,可以用来标识Signature对象。
    目前我采用的方法是先运行release版的app,然后记录下该包里Signature对象的hashcode;在程序里判断取到的Signature对象的hashcode是否与该值相同,相同就是release,否则是debug

    public boolean checkAppReleaseVersion() {
        try {
            //获得package里的签名信息Signature对象
            String packageName = context.getPackageName();
            int flags = PackageManager.GET_SIGNATURES;
    
            PackageInfo packageInfo = pm.getPackageInfo(packageName, flags);
    
            Signature[] signatures = packageInfo.signatures;
            
            //取第一个加载的activity签名
            byte[] cert = signatures[0].toByteArray();
    
            String strResult = "";
    
            //转换成MD5字符来判断
            MessageDigest md;
    
            md = MessageDigest.getInstance("MD5");
            md.update(cert);
            for (byte b : md.digest()) {
                //byte转成16进制
                strResult += Integer.toString(b & 0xff, 16);
            }
            strResult = strResult.toUpperCase();
            //debug
            if ("DE421D82D4BBF9042886E72AA31FE22".toUpperCase().equals(strResult)) {
                return false;
            }
            //relaease
            if ("C96155C3DAD4CA1069808FBAC813A69".toUpperCase().equals(strResult)) {
                return true;
            }
        } catch (NoSuchAlgorithmException ex) {
            return false;
        } catch (PackageManager.NameNotFoundException ex) {
            return false;
        }
        return false;
    }



  • 相关阅读:
    css的网页布局案例
    position定位及实际应用
    float浮动以及案例演示
    第二十三节 margin合并实例
    第二十二节 margin合并
    第二十一节 margin技巧
    第二十节 盒子练习
    第十九节 盒子真实尺寸
    第十八节 盒子案例
    第十七节 盒子模型
  • 原文地址:https://www.cnblogs.com/rfheh/p/4164802.html
Copyright © 2011-2022 走看看