我正在构建一个Android应用程序,需要跟踪设备上安装的其他一些应用程序。
对于给定的应用程序(包),我需要计算哈希值,使得:
有没有办法有效地做到这一点?
谢谢
答案 0 :(得分:0)
只需将apk作为文件加载,并使用以下命令计算文件的MD5哈希值:
public String md5(String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i=0; i<messageDigest.length; i++)
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
取自:http://www.androidsnippets.com/create-a-md5-hash-and-dump-as-a-hex-string
<强>更新强>:
您是否只是想确定是否安装了较新版本的应用程序,为什么不使用PackageManager.getPackageInfo
方法?它返回一个PackageInfo
对象,其中包含应用程序的版本号。您可以跟踪这些值,当它们发生更改时,表示应用程序已更新。请参阅:http://developer.android.com/reference/android/content/pm/PackageManager.html