JAVA : transformer un byte ou tableau de byte[] en chaine lisible

Voici un code pour transformer soit un byte, soit un tableau de bytes (byte[]) en une chaine lisible de type hexa 00 01 02 03 04 05 FA FB FC FD FE FF

  final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
  
  // Un tableau de bytes => une chaine lisible de type 00FF003C3A
  public static String bytesToHex(byte[] bytes) {
      char[] hexChars = new char[bytes.length * 2];
      for ( int j = 0; j < bytes.length; j++ ) {
          int v = bytes[j] & 0xFF;
          hexChars[j * 2] = hexArray[v >>> 4];
          hexChars[j * 2 + 1] = hexArray[v & 0x0F];
      }
      return new String(hexChars);
  }
  
  // Un byte => 2 charactères hexa lisibles de type 3A
  public static String byteToHex(byte bytes) {
   char[] hexChars = new char[2];
   int v = bytes & 0xFF;
   hexChars[0] = hexArray[v >>> 4];
   hexChars[1] = hexArray[v & 0x0F];
      return new String(hexChars);
  }

Fichier batch : seule la première commande est exécutée

Sous Windows, lorsqu’on créé un fichier batch, par exemple « go.bat« , si seulement la première commande est exécutée, c’est que l’instruction qui s’exécute est un batch également.

C’est par exemple le cas avec ionic.

Dans ce cas, il faut utiliser l’instruction call.

Fichier batch qui pose problème :

ionic run android
sleep 3
ionic plugin remove mon.plugin.cordova

Fichier batch corrigé :

call ionic run android
sleep 3
call ionic plugin remove mon.plugin.cordova

 

Cordova et ionic : les commandes de base

En ligne de commande, utiliser « cordova » ou « ionic » revient au même. Si on utilise les outils ionic, il est préférable d’utiliser la commande « ionic ».

Plugins

Lister les plugins

cordova plugin

Supprimer un plugin

cordova plugin remove le.nom.du.plugin

Ajouter un plugin

En local :

cordova plugin add ../../Le/Chemin/relatif/du/plugin

Ajouter un plugin distant :

cordova plugin add phonegap-plugin-barcodescanner

ou

cordova plugin add https://github.com/phonegap/phonegap-plugin-barcodescanner.git

Compiler

Environnement de test du navigateur internet, pour tester seulement le visuel

cordova serve

Environnement de production avec un terminal mobile (Android par exemple) :

cordova run android

 

Ajouter un environnement de production

cordova platform add android

 

 

Ecrire du code dans un article WordPress

Voici comment procéder pour insérer du code indenté (PHP, Java, Js…) dans un article WordPress.

  1. Utiliser l’éditeur texte
  2. Mettre en forme le code dans un éditeur externe (Eclipse, Notepad++…)
  3. Copier coller le code indenté entre des balises
<pre><code>
    LE CODE
</code></pre>

JAVA : syntaxe générale d’écriture du code

Voici un exemple de classe JAVA. Ce code n’a aucun sens, c’est juste pour la syntaxe.


package com.example.smart.pos.lib; 

import org.json.JSONObject;
import org.json.JSONArray;
import org.json.JSONException;

public class UneClasse extends UneAutreClasseParente {

	/**
	 * Commentaire Java
	 */
	public String Result;

	public static CallbackContext localCallbackContext;

	public static final int STATE_READY = 1;
	public static final int STATE_BUSY = 2;

	private int currentState = 1;
	private Boolean nopaper = false;

	@Override
	public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

		// Commentaire
		this.localCallbackContext = callbackContext;

		// Tester égalité d'une chaine en Java
		if ("test_neutre".equals(action)) {
			if (isStateOk()) {
				return true;
			}
			callbackContext.error("NOTREADY");
			return false;
		}
	}

	private void methodeExemple() {
		String message = "";
		try {
			int a = 1;
			if (a == -1) {
				return;
			}
		} catch (Exception e) {
			e.printStackTrace();
			message = e.toString();
		} finally {
			// code
		}
	}
}

Cordova : affiche « Error loading page »

Si lors de la commande

cordova run android

on obtient « Error loading page » sur le mobile, c’est qu’il y a eu un problème à la compilation du code, dans la partie www.

SOLUTION 1

Vérifier que ça fonctionne bien avec

cordova serve

SOLUTION 2

Ecouter les logs pendant l’exécution, dans une nouvelle console, avec

adb logcat

Cordova : Multiple dex files defines xxxxxxx

Ce message arrive pendant la commande

cordova build android

ou

cordova run android

Il indique que le même fichier, par exemple .jar, est inclus plusieurs fois dans le projet, par exemple par plusieurs plugins, avec des versions différentes du fichier.

La difficulté de ce message d’erreur est d’identifier les fichiers en question car ils ne sont pas nommés. Seule la classe ou le fichier dans le .jar est nommé sur ce message.

SOLUTION 1

Désinstaller un des plugins en question et le réinstaller.
Autrement dit, changer l’ordre d’ajout des plugins incréminés.

SOLUTION 2

Supprimer un des fichiers en question, si identifié, dans platforms/android/libs et recompiler.

SOLUTION 3

Chercher dans les fichiers .jar les classes en doubles. Supprimer les plus anciennes ou copier-écraser les plus récentes sur les .jar des plugins les plus anciens.

adb : les commandes

adb sert à gérer les appareils mobiles connectés au PC en USB : liste et logs.

adb s’utilise en ligne de commande.


Lister des appareils mobiles connectés en USB

adb devices

 

Reset la liste des appareils mobiles connectés en USB

adb kill-server
adb devices

 

Affiche en direct les logs de l’appareil connecté si 1 seul

adb logcat