首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin中的Android-Facebook应用程序的关键哈希

Kotlin中的Android-Facebook应用程序的关键哈希
EN

Stack Overflow用户
提问于 2018-03-21 13:32:32
回答 2查看 3.5K关注 0票数 3

在使用java方法为我的应用程序获取hask键之前,我尝试在facebook应用程序中获取kotlin中的散列键:

Java代码:

代码语言:javascript
复制
// 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) {

    }

现在,我尝试将这个代码片段转换为kotlin代码:

Kotlin码:

代码语言:javascript
复制
    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()
    }

但是在这一行代码中出现了错误,我尝试了一些解决方案,但没有得到任何有用的信息:

代码语言:javascript
复制
      Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT))

encodeToString是未解决的,对于Base64.DEFAULT也是一样的。

提前谢谢你的时间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-21 13:38:06

使用下面的代码获取key散列

代码语言:javascript
复制
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) {

    }

确保这一点。导入正确的包

代码语言:javascript
复制
   import android.content.pm.PackageManager
import android.util.Base64
import android.util.Log
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException
票数 5
EN

Stack Overflow用户

发布于 2018-03-21 13:39:51

代码中没有任何错误,只需进行一次更改,请添加导入android.util.Base64而不是导入java.util.*

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49407744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档