Facebook密钥哈希没有生成

时间:2015-04-21 10:54:08

标签: android facebook-login facebook-android-sdk

我必须在我的Android应用程序中使用登录Facebook功能。为此,我需要生成密钥哈希。我正在使用以下代码生成facebook密钥哈希。

public class GenerateFacebookSignature extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        printHashKey();
    }

    public void printHashKey() {
        try {
            PackageInfo packageInfo = getPackageManager().getPackageInfo("com.example.facebooklogin", PackageManager.GET_SIGNATURES);
            for (Signature signature : packageInfo.signatures) {
                MessageDigest messageDigest = MessageDigest.getInstance("SHA");
                messageDigest.update(signature.toByteArray());

                Log.d("FaceBookKeyHash:", Base64.encodeToString(messageDigest.digest(), Base64.DEFAULT));
            }
        }
        catch (PackageManager.NameNotFoundException e) {
        }
        catch (NoSuchAlgorithmException e) {
        }
    }
} 

此类位于名为com.example.facebooklogin.application的不同包中,而我的其他应用程序类位于包com.example.facebooklogin中。

我已将其包含在我的manifest.xml文件中,但它没有在logcat中显示任何哈希键。

<application
        android:name=".application.GenerateFacebookSignature">
</application>

有人能指出我做错了吗?

1 个答案:

答案 0 :(得分:2)

它引发了异常,因为找不到"com.example.facebooklogin"

将其更改为您的包名称,它应该有效。你可以这样使用Context#getPackageName()

PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);