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 :

[java]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;
}[/java]

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

 

Time to pack up : Application Android pour gérer le contenu de sa valise et préparer son voyage.

TimeToPackUp est une petite application Android que j’ai développé.

C’est une application qui vous permet de gérer efficacement le contenu de votre valise et préparer au mieux votre voyage.

Vous pourrez donc partir l’esprit tranquille en étant sûr de n’avoir rien oublié!

download_app_timetopackup

Elle est disponible au téléchargement (gratuit!) sur le Play Store à l’adresse suivante : TimeToPackUp

Le screen d’ouverture/accueil

htcone0

 

Les différentes catégories ajoutées par l’utilisateur :

htcone2

 

L’écran d’ajout d’une nouvelle catégorie (nom, logo et couleur) :

htcone_1

 

L’aide à l’utilisation :

htcone_3

 

Les sources sont également disponibles sur Github : ttps://github.com/joeybronner/TimeToPackUp

timetopackup_github_sources

Détecter et filtrer des couleurs trop claires ou foncées en JAVA

Dans la dernière application Android que j’ai développé, j’utilise un Color Picker (voir ci-dessous) plutôt sympa mais les couleurs trop claires posent problème. J’ai défini une couleur de police très claire (presque blanche) et si l’utilisateur sélectionne une couleur de fond claire, on n’y voit plus rien!

J’ai donc trouvé une solution et j’ai décidé de partager cette ‘astuce’ avec vous.

colorpicker_android_java

 

Etape 1 : Récupérer/convertir la couleur

Pour commencer, il faut avoir la couleur au format “int(si c’est le cas, passez directement à l’étape 2).

Si vous récupérez une couleur au format hexadécimal, vous devez la convertir en utilisant les deux lignes ci-dessous :

[java]String hex = "#FFFFFF";
int value = Integer.parseInt(myString.replaceFirst("#", ""), 16); [/java]

Etape 2 : Obtenir le taux de luminosité

Le taux de luminosité s’obtient à partir de l’integer d’une couleur.

Si le taux est inférieur à 128, la couleur se rapproche du noir.

Si le taux est supérieur à 128, la couleur se rapproche du blanc.

[java] public static int getBrightness(int rgb)
{
int bri= ( 77 * ((argb>>16)&255)
+ 150 * ((argb>>8)&255)
+ 29 * ((argb)&255))>>8;
return bri;
}[/java]

Il vous suffit alors de tester le taux de luminosité en utilisant la valeur retournée par la méthode “getBrightness“.

Etape 3 : Test de la valeur

Ci-dessous, je filtre les couleurs supérieures à 150 (donc claires, se rapprochant du blanc).

[java] int lum = getBrightness(_col);
if (lum > 150)
{
_msgerreur = "Cette couleur est trop claire, vous n’y verrez rien.";
Toast.makeText(getBaseContext(), "Erreur: " + _msgerreur, Toast.LENGTH_SHORT).show();
}[/java]

 

Changer le niveau d’API minimum d’une application Android

Le niveau minimum de l’API  (ou minSdkVersion) d’une application Android est le niveau minimum sur lequel elle va pouvoir être exécutée. Chaque niveau intègre de nouvelles fonctionnalités et permet d’être ou non exécutée sur les versions d’Android.

Ci-dessous, le lien entre le niveau d’API et les fonctionnalités :

android_api_fonctionnalites

Source : applidium

Comment changer le niveau d’API minimum ?

Si au moment d’utiliser une fonction, comme par exemple “getActionBar()“, vous voyez la fonction se souligner en rouge avec le message d’erreur “Call requires API level 11 (current min is X): android.app.Activity#getActionBar” :

android_error_api_minsdk

Pour résoudre ce problème, il faut modifier la valeur de “minSdkVersion“.

Si vous développez sous Android Studio, ouvrez le fichier “build.gradle

 

android_build_gradle

Modifiez la valeur de la variable “minSdkVersion

android_minsdkversion

N’oubliez pas de cliquer sur “Sync Now” dans la barre de notification qui apparaît. Tant que vous n’aurez pas re-synchronisé le projet, la fonction ne sera pas utilisable.

android_sync_now_api_sdkversion

 

Développement Android – Installation et configuration de Vuforia SDK

Vuforia est un framework de réalité augmentée pour les plateformes mobiles (iOS et Android exclusivement). Il permet d’intégrer de la réalité augmentée à ses applications.

Présentation : ICI (source lesmobiles.com)

1. Téléchargement de Vuforia SDK

Pour le téléchargement de la version Android de l’outil de développement qui sera intégré à votre EDI (Eclipse par exemple), cliquez ICI.

vuforia_download

(vous devez créer un compte au préalable)

  • Acceptez les conditions d’utilisation et le téléchargement se lance

vuforia_agree

Une fois téléchargé, faites l’extraction de ce dossier vers le dossier de votre choix (vous devrez y faire référence un peu plus loin dans Eclipse)

2. Ajout de l’environnement dans Eclipse

Dans Eclipse, ouvrez la fenêtre des préférences :

  • Window
  • Préférences

preferences_eclipse

Puis ajoutez une variables à cette liste (voir ci-dessus)

  • Java
  • Build Path
  • Classpath Variables

et sélectionnez “New…”

new_variable_vuforia

Complétez les variables selon l’endroit où vous avez extrait Vuforia.
Name: QCAR_SDK_ROOT
Path: (cliquez sur folder et localisez le dossier que vous avez extrait dans la partie 1)

3. Utilisation d’un exemple

Voilà, Vuforia est maintenant correctement ajouté à Eclipse, vous pouvez maintenant commencer par tester un projet d’exemple qui est proposé sur leur site.

Allez sur : https://developer.vuforia.com/resources/sample-apps

exemple_vuforia

Sélectionnez “Android” et le fichier contenant tous les exemples se télécharge.

Une fois téléchargé, exportez un ou plusieurs projets que vous souhaitez tester vers votre répertoire de travail (workspace).

(ci-dessous, la liste des exemples fournis par Vuforia)

vuforia_ex

Pour le tutoriel, je vais prendre le projet “VuforiaSamples-2-8-8

Faites simplement un import de ce projet dans Eclipse :

  • File
  • New
  • Other…
  • Android Project from Existing Code

add_vuforia_project

  • Choisissez le dossier “VuforiaSamples-2-8-8
  • Cliquez sur “Finish

Le projet est importé, il ne vous reste plus qu’à le compiler et le tester sur votre téléphone.