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 :

Implémenter un Intent


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Implémenter un Intent
    Bonjour à tous,

    Voici une demande un peu particulière.
    Je mets la dernière main à un programme que j'ai écris en Windev Mobile.
    Il me manque quelques lignes de programme pour finaliser. Ces quelques lignes sont en java et je ne connais pas Java ni la POO.
    J'ai parcouru les tutos en cherchant la solution seulement je rame...

    Je suis sans doute trop vieux pour intégrer tous ces nouveaux concepts. (J'ai programmé en Fortran, Cobol, Mumps, Basic et autre joyeusetés. Cela doit vous donner une idée de mon age avancé).

    Mon problème:
    Je cherche à imprimer sur un imprimante POS/ESC à partir du port USB de ma tablette.
    J'ai trouvé une app qui prend cela en charge et les tests fonctionnent.
    Il me "suffit" maintenant d'envoyer les données à partir de mon programme.
    Windev permet d'utiliser des procédures globales écrites en Java donc pas de souci.
    Seulement, j'ai beau essayer d'écrire cette procédure de quelques lignes, rien ne fonctionne.

    La documentation précise:
    "Create your ESC data ; ça c'est fait et testé
    Create an Android Intent using "qrstech.posprinterdriver/.printservice"
    Add your ESC data as a "Data" extra
    Start the intent

    L'un de vous serait-il assez aimable pour m'écrire les quelques lignes nécessaires ? (Sans m'envoyer vers les tutos car je ne programmerai sans doute jamais en Java).

    Un grand merci d'avance.

    Thierry

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Si je ne me trompe pas, ce serait quelque chose comme :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Intent intent = new Intent(Intent.ACTION_VIEW, "qrstech.posprinterdriver/.printservice" );
    intent.putExtra("Data", LES_DONNEES_A_TRANSMETTRE);
    startActivity(intent);

    J'ai un doute sur le putExtra, je ne saisi pas bien la ligne
    Add your ESC data as a "Data" extra
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Merci pour votre réponse, J'ai intégré le code et voici le résultat de la compilation.


    Erreur retournée :
    src\com\masociete\testpos\wdgen\GWDCPCOL_Impression_ESC_POS.java:27: error: cannot find symbol
    Intent intent = new Intent(Intent.ACTION_VIEW, "qrstech.posprinterdriver/.printservice" );
    ^
      symbol:   class Intent
      location: class GWDCPCOL_Impression_ESC_POS
    src\com\masociete\testpos\wdgen\GWDCPCOL_Impression_ESC_POS.java:27: error: cannot find symbol
    Intent intent = new Intent(Intent.ACTION_VIEW, "qrstech.posprinterdriver/.printservice" );
                        ^
      symbol:   class Intent
      location: class GWDCPCOL_Impression_ESC_POS
    src\com\masociete\testpos\wdgen\GWDCPCOL_Impression_ESC_POS.java:27: error: cannot find symbol
    Intent intent = new Intent(Intent.ACTION_VIEW, "qrstech.posprinterdriver/.printservice" );
                               ^
      symbol:   variable Intent
      location: class GWDCPCOL_Impression_ESC_POS
    3 errors
    
    Voici ce code que j'ai écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static void Impression()
    {
    Intent intent = new Intent(Intent.ACTION_VIEW, "qrstech.posprinterdriver/.printservice" );
    intent.putExtra("Data", "LES_DONNEES_A_TRANSMETTRE"); // Il me faut mettre la variable string ici
    startActivity(intent);
    }
    Faut-il faire un import quelconque avant?

    Je reste perdu et me sens de plus en plus stupide.

    Pouvez-vous me corriger?

    Merci d'avance

    Thierry

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Oui.
    Il faut mettre des lignes "import" en début de fichier. J'ai trop l'habitude à priori pour les noter.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    import android.content.Intent;

    en début de fichier.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Plus que 2 erreurs
    Je me sens de plus en plus gêné, cela ne fonctionne pas encore:

    Si ce n'est pas trop demander, y a-t-il moyen de compléter le programme avec une variable string avec un contenu tel que "Données test + CR" pour rendre cela autonome et me permettre d'avancer.
    Cela me permettrais de tester morceau par morceau, il me suffira ensuite de tester en mettant ma variable en paramètre de la procédure.
    Merci d'avance

    Thierry


    Echec de la création de l'application Android <C:\Mes Projets Mobile\TestPos\Exe\TestPos.apk>.


    Ligne de commande : "C:\Program Files\Java\jdk1.8.0_20\bin\javac.exe" -encoding UTF-16LE -nowarn -source 1.5 -target 1.5 -d bin\classes -bootclasspath "C:\sdk\adt-bundle-windows-x86_64-20130219\sdk\platforms\android-17\android.jar" gen\com\masociete\testpos\*.java src\com\masociete\testpos\wdgen\*.java -classpath "libs;bin\classes;libs\android-support-v4.jar"


    Erreur retournée :
    src\com\masociete\testpos\wdgen\GWDCPCOL_Impression_ESC_POS.java:30: error: no suitable constructor found for Intent(String,String)
    Intent intent = new Intent(Intent.ACTION_VIEW, "qrstech.posprinterdriver/.printservice" );
    ....................^
    constructor Intent.Intent(String,Uri) is not applicable
    (argument mismatch; String cannot be converted to Uri)
    constructor Intent.Intent(Context,Class<?>) is not applicable
    (argument mismatch; String cannot be converted to Context)
    src\com\masociete\testpos\wdgen\GWDCPCOL_Impression_ESC_POS.java:32: error: cannot find symbol
    startActivity(intent);
    ^
    symbol: method startActivity(Intent)
    location: class GWDCPCOL_Impression_ESC_POS
    Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
    2 errors

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Ok, pour l'Intent :

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("qrstech.posprinterdriver/.printservice" ));
    J'avais zappé que le second paramètre devait être une URI, toute mes excuses.

    Pour la seconde erreur... elle va être plus complexe : ta méthode ne doit pas être statique pour invoquer la méthode startActivity. Elle doit être inscrite dans un Context.
    Donc enlève le mot-clef "static", ou rajoute un paramètre de type Context à ta méthode, et ensuite context.startActivity(intent);

    En bref :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static void Impression(Context context, String toBeGiven)
    {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("qrstech.posprinterdriver/.printservice"));
    intent.putExtra("Data", toBeGiven); // Il me faut mettre la variable string ici
    context.startActivity(intent);
    }
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Cela ne fonctionne pas et cela semble venir des paramètres de la deuxième ligne (public static....)
    Mon éditeur signale "Type de parametre non valide".
    Si je retire "Context context" l'éditeur est ok mais les erreurs précédentes reviennent (logique semble-t-il )
    Y a-t-il un moyen de contourner ce problème?
    J'ai beau lire les tutos, java ne s'apprend visiblement pas en 1 jour et je n'ai plus que ces quelques lignes à écrire pour que mon appli fonctionne.
    Merci

    Voici ce que j'ai encodé


    import android.content.Intent;

    public static void Impression(String toBeGiven)

    {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("qrstech.posprinterdriver/.printservice"));
    intent.putExtra("Data", toBeGiven); // Il me faut mettre la variable string ici
    context.startActivity(intent);
    }
    Voici les erreurs.
    Echec de la création de l'application Android <C:\Mes Projets Mobile\TestPos\Exe\TestPos.apk>.


    Ligne de commande : "C:\Program Files\Java\jdk1.8.0_20\bin\javac.exe" -encoding UTF-16LE -nowarn -source 1.5 -target 1.5 -d bin\classes -bootclasspath "C:\sdk\adt-bundle-windows-x86_64-20130219\sdk\platforms\android-17\android.jar" gen\com\masociete\testpos\*.java src\com\masociete\testpos\wdgen\*.java -classpath "libs;bin\classes;libs\android-support-v4.jar"


    Erreur retournée :
    src\com\masociete\testpos\wdgen\GWDCPCOL_ProceduresGlobales.java:30: error: cannot find symbol
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("qrstech.posprinterdriver/.printservice"));
    ^
    symbol: variable Uri
    location: class GWDCPCOL_ProceduresGlobales
    src\com\masociete\testpos\wdgen\GWDCPCOL_ProceduresGlobales.java:32: error: cannot find symbol
    context.startActivity(intent);
    ^
    symbol: variable context
    location: class GWDCPCOL_ProceduresGlobales
    2 errors

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Je suis toujours dans la m..... et ce n'est pas au Cambodge que je trouverai de l'aide, c'est pour cela que je fais appel à la communauté.
    Sans doute ai-je l'air ridicule ou stupide, mais je patauge
    Et dire que je m'étais procuré Windev car soit disant il ne faut pas de connaissance Java. Voici un exemple de mauvaise décision (bien que je dois reconnaître que le reste de l'application fonctionne bien, mais ne sert à rien tant que je ne peux pas imprimer un ticket de caisse).
    Est-ce possible ou non?
    Ou un programme autonome qui imprime des données avec cette appli afin de la tester. Les programmes de test fournis avec l'appli fonctionnent, il "suffit" donc de communiquer avec elle et là je plante.
    Je ne reçois aucune précision du développeur de l'appli qui est en Corée.... Et pourtant, je suis convaincu que cela doit être "facilement" possible.

    De toute façon merci pour votre patience.

Discussions similaires

  1. Réponses: 12
    Dernier message: 01/07/2004, 11h03
  2. Réponses: 8
    Dernier message: 04/06/2004, 09h13
  3. Moteur physique : comment l'implémenter ?
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 17/12/2003, 12h56
  4. Réponses: 2
    Dernier message: 06/07/2002, 12h36
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

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