IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Utilisation API Imprimante BT depuis un AGL et une fonction JAVA


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Par défaut Utilisation API Imprimante BT depuis un AGL et une fonction JAVA
    Bonjour à tous,

    Je développe dans un AGL qui me permet de créer des fonctions JAVA.
    Je dois utiliser une Imprimante thermique Espon en bluetooth avec laquelle une API est fourni (ePOS2.jar)

    J'ai correctement importé cette librairie dans mon AGL et créé une fonction JAVA pour l'exploiter.

    Malheureusement je n'arrive pour le moment pas a imprimer, je sollicite donc votre aide.

    Voici un extrait de la documentation, permettant de se connecter à l'imprimante et d'imprimer un "Hello World" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try {
    	mPrinter = new Printer(Printer.TM_M10, Printer.MODEL_ANK,this);
    }
    catch (Epos2Exception e)
    {
    	return 1;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mPrinter.setReceiveEventListener(this);
    Mon premier problème est le suivant :
    Je ne peux créer que de fonction static renvoyant un type simple et donc je ne peux pas utiliser le mot clé this

    J'ai tenté de récupérer un context de mon appli mais je ne suis pas sûr que cela fonctionne vraiment...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public static int ImprimeTicket()
    {
    	Context context = getApplicationContext();
    	Printer mPrinter = null;
     
     
    	try {
    		mPrinter = new Printer(Printer.TM_M10, Printer.MODEL_ANK,context);
    	}
    	catch (Epos2Exception e)
    	{
    		return 1;
    	}
    	ReceiveListener listener = null;
     
    	mPrinter.setReceiveEventListener(listener);
    Je suis censé créer un fonction callback de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public void onPtrReceive(final Printer printerObj, final int code, final PrinterStatutInfo status, final String printJobId) {
    	runOnUiThread(new Runnable() {
    		@Override
    		public synchronized void run() {
    			if (code == Epos2CallbackCode.CODE_SUCCES) {
    				//Ca doit avoir imprimé...
    			}
    			else {
    				//Erreur...?				
    			}
    		}
    	});
    	new Thread(new Runnable() {)
    		@Override
    		public synchronized void run() {
    			//Process annulé...
    		}
    	}.start();
    }
    Mais lorsque j'essai j'ai un très grand nombre d'erreur.

    Je suis probablement un peu flou dans mes explications donc si vous avez besoin d'informations en plus pour m'aider n'hésitez pas a demander...

    J'espère que vous pourrez éclairer un peu la lanterne d'un non développeur JAVA...

    Merci d'avance de l'intérêt que vous porterez à mon problème !

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tout ceci me semble très confus.

    Citation Envoyé par Implicit-Jeremy Voir le message
    Mais lorsque j'essai j'ai un très grand nombre d'erreur.
    Lesquelles ?

    Citation Envoyé par Implicit-Jeremy Voir le message
    ReceiveListener listener = null;

    mPrinter.setReceiveEventListener(listener);
    Remplacer this par null ne me semble pas une bonne idée.

    Je pense qu'il fautdrait que tu passes une implémentation de ReceiveListener.

    Un truc comme çà à priori (sans doc c'est plutôt difficile de te répondre) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    mPrinter.setReceiveEventListener(new ReceiveListener() {
     
    public void onPtrReceive(final Printer printerObj, final int code, final PrinterStatutInfo status, final String printJobId) {
    	// le code de ton callback...
    }
     
     
    });

    Il y'a une erreur dans ce code : une parenthèse mal placée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public void onPtrReceive(final Printer printerObj, final int code, final PrinterStatutInfo status, final String printJobId) {
    	runOnUiThread(new Runnable() {
    		@Override
    		public synchronized void run() {
    			if (code == Epos2CallbackCode.CODE_SUCCES) {
    				//Ca doit avoir imprimé...
    			}
    			else {
    				//Erreur...?				
    			}
    		}
    	});
    	new Thread(new Runnable() {)
    		@Override
    		public synchronized void run() {
    			//Process annulé...
    		}
    	}.start();
    }
    Ce serait plutôt ça (enfin, au moins pour que ça compile, je dis pas que ça va faire ce que tu voudrais que ça fasse) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public void onPtrReceive(final Printer printerObj, final int code, final PrinterStatutInfo status, final String printJobId) {
    	runOnUiThread(new Runnable() {
    		@Override
    		public synchronized void run() {
    			if (code == Epos2CallbackCode.CODE_SUCCES) {
    				//Ca doit avoir imprimé...
    			}
    			else {
    				//Erreur...?				
    			}
    		}
    	});
    	new Thread(new Runnable() {
    		@Override
    		public synchronized void run() {
    			//Process annulé...
    		}
    	}).start();
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Par défaut
    Merci joel.drigo de m'accorder de votre temps pour m'aider.

    Effectivement je suis un peu confus dans mes explications, je ne savais pas trop quel niveau de détail je devais fournir et j'avoue ne pas être très alaise avec le langage Java.

    En me basant sur vos explications, j'ai saisie le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    import android.app.Activity.*;
    import android.content.*;
    import android.content.Context.*;
    import com.epson.epos2.*;
    import com.epson.epos2.printer.*;
     
    public static int ImprimeTicket2()
    {
    	Context context = getApplicationContext();
    	Printer mPrinter = null;
     
     
    	try {
    		mPrinter = new Printer(Printer.TM_M10, Printer.MODEL_ANK,context);
    	}
    	catch (Epos2Exception e)
    	{
    		return 1;
    	}
     
    	mPrinter.setReceiveEventListener(new ReceiveListener() {	
    		public void onPtrReceive(final Printer printerObj, final int code, final PrinterStatusInfo status, final String printJobId) {
    			runOnUiThread(new Runnable() {
    				@Override
    				public synchronized void run() {
    					if (code == Epos2CallbackCode.CODE_SUCCES) {
    						//Ca doit avoir imprimé...
    					}
    					else {
    						//Erreur...?				
    					}
    				}
    			});
    			new Thread(new Runnable() {
    				@Override
    				public synchronized void run() {
    					//Process annulé...
    				}
    			}).start();
    		}
    	});
     
    	return 0;
    }
    Lorsque je tente de compiler j'ai l'erreur suivante :

    C:\Projets\Bench\Android\Generation\src\com\masociete\bench\wdgen\GWDCPProceduresGlobales.java:375: error: cannot find symbol
    runOnUiThread(new Runnable() {
    ^
    symbol: method runOnUiThread(<anonymous Runnable>)
    Pourtant il semble que runOnUiThread soit bien de la classe android.app.Activity ?

    Voici l'extrait de la documentation que j'utilise pour essayer d'utiliser l'API

    Nom : extract_programming_Flow.png
Affichages : 273
Taille : 158,8 Ko

    Encore une fois merci pour votre aide.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    C'est de l'Android alors... j'y connais pas grand chose en Android, pour ainsi dire rien. A mon avis c'est la classe qui ne va pas : elle devrait étendre une classe qui a la méthode runOnUIThread. D'ailleurs, c'est bizarre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public static int ImprimeTicket2()
    {
    juste après des imports, normalement il devrait y avoir une déclaration de classe...un truc du genre public class ...., mais c'est de l'Android, dans un contexte très particulier, à ce que j'ai cru comprendre. Je vais déplacer la discussion dans la section Android, tu auras plus de chances de réponses adéquates.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Par défaut
    Merci pour votre aide joel.drigo et pour le déplacement du sujet dans la bonne partie du Forum.

    Si une bonne âme peut me venir en aide ?

    Merci d'avance !

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    runOnUiThread est une fonction spécial des Activity (écran) android qui permet d'executer un code sur le thread ui et donc d'intéragir avec l'ui.

    Si tu ne développe pas pour android , tu ne peux pas utiliser cette fonction.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Utiliser une fonction java depuis un appel javascript
    Par glouke dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/04/2016, 10h43
  2. Utiliser un vecteur résultant d'une fonction Java
    Par ebenmous dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 17/06/2011, 18h42
  3. ouvrir un jar depuis un menu d'une application Java
    Par kinfo dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/12/2009, 19h38
  4. Réponses: 1
    Dernier message: 27/11/2008, 10h55
  5. Appel d'une fonction java (dans une applet) depuis javascript
    Par foued_scorpion dans le forum Applets
    Réponses: 2
    Dernier message: 17/01/2007, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo