Kotlin中Android Facebook应用程序的密钥哈希
在使用此java方法获取应用程序的hask密钥之前,我正在尝试获取facebook应用程序kotlin中的哈希密钥: Java代码:Kotlin中Android Facebook应用程序的密钥哈希,android,kotlin,Android,Kotlin,在使用此java方法获取应用程序的hask密钥之前,我正在尝试获取facebook应用程序kotlin中的哈希密钥: Java代码: // Add code to print out the key hash try { PackageInfo info = getPackageManager().getPackageInfo( "your.package", PackageManager.GET_SIGN
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(
"your.package",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
try {
val info = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
for (signature in info.signatures) {
val md = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT))
}
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
} catch (e: NoSuchAlgorithmException) {
e.printStackTrace()
}
现在,我尝试将此代码段转换为kotlin代码:
Kotlin代码:
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(
"your.package",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
try {
val info = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
for (signature in info.signatures) {
val md = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT))
}
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
} catch (e: NoSuchAlgorithmException) {
e.printStackTrace()
}
但在这行代码中出现错误我尝试了一些解决方案,但没有得到任何有用的结果:
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT))
encodeToString
未解析,与Base64相同。默认值
提前感谢您的时间。使用下面的代码获取keyhash
try {
val info = packageManager.getPackageInfo(
"your package",
PackageManager.GET_SIGNATURES)
for (signature in info.signatures) {
val md = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT))
}
} catch (e: PackageManager.NameNotFoundException) {
} catch (e: NoSuchAlgorithmException) {
}
确保。导入正确的包
import android.content.pm.PackageManager
import android.util.Base64
import android.util.Log
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException
代码中没有错误,只需要一次更改
请添加导入android.util.Base64而不是导入java.util.*让我试试这个。