Juin 28

Pour faire une capture d’écran d’un périphérique Android, il existe au moins 2 méthodes (j’n’en connais pas d’autre, pour l’instant, mais cela n’implique pas qu’il n’en existe pas (lol) ) :

  • Installer le SDK d’Android et utiliser
    • l’application Davilk Debug Monitor
    • l’outil MonkeyRunner
  • Avoir un téléphone rooté
  • Utiliser des applications tierces

Vous pouvez trouver des informations sur le blog de Lorand concernant ces méthodes.

Ce qui m’intéresse, c’est plus le comment fait le DDMS pour obtenir une capture… s’il en est capable, je devrais aussi pouvoir le faire sans passer par lui…

Du coup, j’ai lancé mon EclipseW pour faire un vrai projet JavaW, et non pas un projet AndroidW.

J’ai inclus au nouveau projet une bibliothèque du SDK d’Android, ddmlib.jar.

ddmlib.jar

ddmlib.jar

Puis, j’ai créé deux classes :

  • Une pour parser les arguments que j’envoie en ligne de commande
  • Une pour aller récupérer la capture d’écran


La classe pour les arguments est basée sur cet exemple.
Le code de cette classe dans mon implémentation est le suivant :

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
package org.whiler.helper;

import java.util.*;

public class ArgumentsParser {

  private Vector<String>        params    = new Vector<String>();
  private Hashtable<String, String> options   = new Hashtable<String, String>();
  private int             paramIndex  = 0;

  public ArgumentsParser(String[] args) {
    for (int i = 0; i < args.length; i++) {
      if (args[i].startsWith("-") || args[i].startsWith("/")) {
        int loc = args[i].indexOf("=");
        String key = (loc > 0) ? args[i].substring(1, loc) : args[i].substring(1);
        String value = (loc > 0) ? args[i].substring(loc + 1) : "";
        options.put(key.toLowerCase(), value);
      } else {
        params.addElement(args[i]);
      }
    }
  }

  public boolean hasOption(String opt) {
    return options.containsKey(opt.toLowerCase());
  }

  public String getOption(String opt) {
    return (String) options.get(opt.toLowerCase());
  }

  public String nextParam() {
    if (paramIndex < params.size()) {
      return (String) params.elementAt(paramIndex++);
    }
    return null;
  }
}

Sur la page suivante, le code pour la connexion au périphérique et la récupération de l’image…

Share

Pages : 1 2

Lien permanent vers Capture d’écran Android Rédigé par Whiler \\ Tags : , , , , ,

4 réponses pour “Capture d’écran Android”

  1. Lorand a dit :

    Moi j’ai un super système personnalisé pour faire mes captures d’écran (lol)

    Merci Whiler (y) (hi) (clap) (bow)

    Répondre

  2. emna a dit :

    j ai un tel android et une cam ip j ai fait le flux de l image maintenant je veux capturer une image je fai comment

    Répondre

  3. Whiler a dit :

    @ emna : je ne comprends pas la question… :s
    Je ne vois pas le rapport entre la caméra IP et les captures d’écran dont je parle dans cet article ?
    Vous avez développé une application sur Android comme IP Cam Viewer ?

    Répondre

Laisser une réponse

(requis)

(requis)

*

Notifiez-moi les commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.

;) (lol) (y) |-( (hi) 8-) (angel) :s (clap) (bow) (tmi) (:| plus »