android - 无法获取 Facebook Connect Android SDK 的 Release Keyhash

标签 android facebook key

我正在尝试为我的应用检索 Release Keyhash。我为生成的 keystore 文件提供了正确的密码和路径,但仍然没有输出我的 key 哈希。

这是情况的屏幕截图。

enter image description here

如您在上图中所见,我已正确提供所有信息,包括我的密码。我的密码是我在生成 keystore 文件 时输入的密码。它不输出任何内容并移动到下一行。

为什么不打印 keyhash

最佳答案

package com.example.id;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import android.os.Bundle;
import android.app.Activity;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;
import android.util.Base64;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    PackageInfo info;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = (Button)findViewById(R.id.button1);
        final EditText et = (EditText)findViewById(R.id.editText1);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                try {
                    info = getPackageManager().getPackageInfo("com.example.id", PackageManager.GET_SIGNATURES);
                    for (Signature signature : info.signatures) {
                        MessageDigest md;
                        md = MessageDigest.getInstance("SHA");
                        md.update(signature.toByteArray());
                        String something = new String(Base64.encode(md.digest(), 0));
                        //String something = new String(Base64.encodeBytes(md.digest()));
                        et.setText(something);
                       Toast.makeText(getBaseContext(), "" + something, 2000).show();
                    }
                } catch (NameNotFoundException e1) {
                    Log.e("name not found", e1.toString());
                } catch (NoSuchAlgorithmException e) {
                    Log.e("no such an algorithm", e.toString());
                } catch (Exception e) {
                    Log.e("exception", e.toString());
                }
            }
        });
    }


}

关于android - 无法获取 Facebook Connect Android SDK 的 Release Keyhash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20325503/

相关文章:

android - sc 启动 intelhaxm 错误 [SC] startservice failed 31 : a device attached to the system is not functioning

javascript - 在调用 FB.init() 之前调用 FB.getLoginStatus()。如何使用 Facebook API?

javascript - Facebook Messenger 复选框插件未呈现

java - 存储/恢复用于在 Java 中解密字符串的加密 key 的简便方法

Python json 解析器允许重复键

PHP 动态创建多维数组键

android - Firebase Auth 使用 Google 登录无法正常工作

android - android中滑动菜单的子菜单

android - HListView 无法实例化 Android Eclipse 项目库

facebook - 使用 facebook-node-sdk 模块上传照片/(#324) 需要上传文件