Unity Android 获取签名MD5
2017-05-16 本文已影响919人
2b75747cf703
懂得搞Java的人不一定能搞定C#,所以在Unity游戏层加一个签名验证对防止二次打包还是有点用的。
public static string GetSignatureMD5Hash()
{
var player = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var activity = player.GetStatic<AndroidJavaObject>("currentActivity");
var PackageManager = new AndroidJavaClass("android.content.pm.PackageManager");
var packageName = activity.Call<string>("getPackageName");
var GET_SIGNATURES = PackageManager.GetStatic<int>("GET_SIGNATURES");
var packageManager = activity.Call<AndroidJavaObject>("getPackageManager");
var packageInfo = packageManager.Call<AndroidJavaObject>("getPackageInfo", packageName, GET_SIGNATURES);
var signatures = packageInfo.Get<AndroidJavaObject[]>("signatures");
if(signatures != null && signatures.Length > 0)
{
byte[] bytes = signatures[0].Call<byte[]>("toByteArray");
return FileUtility.GetMD5Hash(bytes);
}
return null;
}