Générer une Android Key Hash de développement par le code

Pour intégrer l’API Facebook à votre application Android, une Android Key Hash de développement (ou de prod) est demandée.

Une solution consiste à télécharger et installer OpenSSL pour générer cette clé mais la solution que j’ai choisi moi, c’est de la générer par le code (en JAVA bien sur).

Voilà la solution :

public static String printKeyHash(Activity context) {
PackageInfo packageInfo;
String key = null;
try {

// Getting application package name, as defined in manifest
String packageName = context.getApplicationContext().getPackageName();

// Retriving Package info
packageInfo = context.getPackageManager().getPackageInfo(packageName,
PackageManager.GET_SIGNATURES);

Log.e("Package Name=", context.getApplicationContext().getPackageName());

for (Signature signature : packageInfo.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
key = new String(Base64.encode(md.digest(), 0));

// String key = new String(Base64.encodeBytes(md.digest()));
Log.e("Key Hash= ", key);

}
} 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());
}

return key;
}

Pour toute autre recherche sur les fonctionnalités de l’API Facebook en elle-même, la document officielle est très bien faite.