Kotlin中Android Facebook应用程序的密钥哈希

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

在使用此java方法获取应用程序的hask密钥之前,我正在尝试获取facebook应用程序kotlin中的哈希密钥:

Java代码:

// 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.*

让我试试这个。