Affichage des articles dont le libellé est JaveMe. Afficher tous les articles
Affichage des articles dont le libellé est JaveMe. Afficher tous les articles

samedi 1 décembre 2007

MicroEmulateur emulateur J2me en ligne


MicroEmulateur est une implémentation de J2me en J2SE, MicroEmulator est sous licence LGPL .

1- Exemples d'utilisations :

* Démonstration de votre MIDlet dans le navigateur Web grâce à l'applet d'émulation.

* MicroEmulateur offre un soutien aux plates-formes de développement où aucun émulateur n'est disponible.

2- Il Offre :

* Un support pour MIDP 2.0 .
* Un support de la MMAPI (JSR 135) .
* Un support de la FileConnection API (JSR 75) .
* Un support pour Nokia API .
* Un support aux API Siemens .
* Interface Skinnable et configurable .
* Fonctionne avec différentes bibliothèques graphiques; actuellement avec Swing et SWT
* Plate-forme indépendante: Windows, Linux, OSX.

Exemple de L'emulateur

site officiel : www.microemu.org






lundi 19 novembre 2007

Envoyer un sms en j2me


Voici une Midlet qui permet l'envoi et la réception de sms.

import javax.microedition.midlet.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.wireless.messaging.*;
import java.io.IOException;

public class SMSMIDlet
extends MIDlet
implements CommandListener, Runnable {
private Sender mSender = null;
private Thread mReceiver = null;
private Command mExitCommand = new Command("Exit", Command.EXIT, 2);
private Command mRedCommand = new Command("Send Red", Command.SCREEN, 1);
private Command mBlueCommand = new Command("Send Blue", Command.SCREEN, 1);
private Display mDisplay = null;
protected ImageItem mColorSquare = null;
protected Image [] mImages = new Image[2];
protected Image waitImage = null;
private String mPort = "1234";
private TextField mNumberEntry= null;
private Form mForm = null;
private String mSenderAddress = null;
public SMSMIDlet() {
mSender = Sender.getInstance();
}
public void commandAction(javax.microedition.lcdui.Command c,
javax.microedition.lcdui.Displayable d) {
if (c == mExitCommand) {
if (!mSender.isSending()) {
destroyApp(true);
notifyDestroyed();
}
} else if (c == mRedCommand) {
String dest = mNumberEntry.getString();
if (dest.length() > 0)
mSender.sendMsg(dest, mPort, "red");
} else if (c == mBlueCommand) {
String dest = mNumberEntry.getString();
if (dest.length() > 0)
mSender.sendMsg(dest, mPort, "blue");
}
}

protected void destroyApp(boolean param) {
try {
mEndNow = true;
conn.close();
} catch (IOException ex) {
System.out.println("destroyApp caught: ");
ex.printStackTrace();
}
}
protected void pauseApp() {
}
protected void startApp() {
if (mForm == null) {
mForm = new Form("SMSMIDlet");
mNumberEntry = new TextField("Connect to:",
null, 256, TextField.PHONENUMBER);
try {
mImages[0] = Image.createImage("/red.png");
mImages[1] = Image.createImage("/blue.png");
waitImage = Image.createImage("/wait.png");
} catch (Exception ex) {
System.out.println("startApp caught: ");
ex.printStackTrace();
}
mColorSquare = new ImageItem(null, waitImage,ImageItem.
LAYOUT_DEFAULT, "colored square");
mForm.append(mNumberEntry);
mForm.append(mColorSquare);
mForm.addCommand(mExitCommand);
mForm.addCommand(mRedCommand);
mForm.addCommand(mBlueCommand);
mForm.setCommandListener(this);
}
Display.getDisplay(this).setCurrent(mForm);
startReceive();
}
private void startReceive() {
if (mReceiver != null)
return;

// Start receive thread
mReceiver = new Thread(this);
mReceiver.start();
}
private boolean mEndNow = false;
private MessageConnection conn = null;
public void run() {
Message msg = null;
String msgReceived = null;
conn = null;
mEndNow = false;
/** Check for sms connection. */
try {
conn = (MessageConnection) Connector.open("sms://:" + mPort);
msg = conn.receive();
while ((msg != null) && (!mEndNow)) {
if (msg instanceof TextMessage) {
msgReceived = ((TextMessage)msg).getPayloadText();
if (msgReceived.equals("red")) {
Display.getDisplay(this).callSerially(new SetRed());
} else if (msgReceived.equals("blue")) {
Display.getDisplay(this).callSerially(new SetBlue());
}
}
msg = conn.receive();
}
} catch (IOException e) {
// Normal exit when connection is closed
}
}
class SetRed implements Runnable {
Display disp = null;
public void run() {
mColorSquare.setImage(mImages[0]);
}
}
class SetBlue implements Runnable {
public void run() {
mColorSquare.setImage(mImages[1]);
}
}
}

Comment tester l'envoi de SMS :


Vous pouvez facilement tester SMSMIDlet, ou toute application SMS, à l'aide d'un utilitaire appelé le WMA présent dans WTK 2.x. .Pour accéder à la console de WMA, sélectionnez "files" puis "utilities" . Cliquez ensuite la console WMA, puis sélectionnez "launch".

Pour tester SMSMIDlet, d'abord démarrer une instance dans l' émulateur.
Quand il démarre. Notez que sur la barre de titre de l'émulateur un numéro de téléphone apparait, ce dernier commence par Un "+" , Par défaut, c'est le +5550000, C'est le numéro de l'émulateur.
Maintenant, lancez la console de WMA, Sélectionnez le numéro de l'émulateur, cliquez sur le bouton "send SMS".

mercredi 14 novembre 2007

Charger un TiledLayer en J2me


Un TiledLayer est un élément visuel composé d'une grille de cellules qui peuvent être remplis d'un ensemble de parties d'images.
Cette technique est couramment utilisée pour la réalisation de jeux java 2D sur téléphone .

Le code source suivant est celui de la classe DemoCanvas.java, pour pouvoir tester cet exemple et le faire fonctionner il faudra penser à créer une midlet qui fera appel à cette classe, je suppose que c'est assez simple donc nous n'allons pas en parler ici.

Code source J2me :



package exemple2;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.io.IOException;
/**
*
* @author java-Mobile
*/
public class DemoCanvas extends GameCanvas {

/** Creates a new instance of DemoCanvas */
protected DemoCanvas() {
super(true);
initLayer();
drawBackground();
}

public void initLayer() {

int backgroundWidth = 10;
int backgroundHeight = 10;
int tileWidth = 32;
int tileHeight = 32;
Image tilesImage = null;
try {
tilesImage = Image.createImage("/exemple2/modele.png");
} catch (IOException ex) {
throw new RuntimeException ("Unable to load Image - "+ex);
}
TiledLayer tiledLayer = new TiledLayer(
backgroundWidth, backgroundHeight,
tilesImage, tileWidth, tileHeight);

int[] map = {
1 , 5 , 5 , 5 , 5 , 5 , 5 , 4 , 4 , 4 ,
4 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 4 ,
4 , 5 , 5 , 5 , 2 , 2 , 5 , 5 , 5 , 4 ,
4 , 5 , 5 , 5 , 2 , 2 , 5 , 5 , 5 , 4 ,
4 , 4 , 5 , 5 , 2 , 2 , 5 , 5 , 5 , 4 ,
4 , 4 , 4 , 5 , 5 , 2 , 2 , 2 , 5 , 4 ,
1 , 1 , 3 , 3 , 5 , 5 , 2 , 2 , 5 , 4 ,
3 , 1 , 3 , 3 , 3 , 5 , 5 , 5 , 5 , 4 ,
3 , 1 , 1 , 3 , 3 , 3 , 5 , 5 , 1 , 1 ,
3 , 3 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 3 ,
3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 };
for (int y=0; y
for (int x=0; x
tiledLayer.setCell(y, x, map[y*backgroundWidth+x]);
}
}

setTiledLayer(tiledLayer);
}

public void drawBackground() {

// Get off-screen buffer
Graphics g = getGraphics();

// Clear the background
g.setColor(BACKGROUND_COLOR);
g.fillRect(0, 0, getWidth(), getHeight());

// Paint the tiled layer
TiledLayer tiledLayer = getTiledLayer();
if(tiledLayer != null) {
tiledLayer.paint(g);
}
}

public TiledLayer getTiledLayer() {
return tiledLayer;
}


public void setTiledLayer(TiledLayer tiledLayer) {
this.tiledLayer = tiledLayer;
}


private TiledLayer tiledLayer;

public static final int BACKGROUND_COLOR = 0x00000000;

}

Plus d'infos sur la Class TiledLayer

dimanche 11 novembre 2007

Outils de Développement


Dans cet article on va traiter des outils de développement sous Windows, on peut citer deux environnements de développement Netbeans et Eclipse, avant de se pencher sur les outils de développement, nous allons nous intéresser aux pré-requis nécessaires pour commencer tout développement J2ME.

I. Pré-requis:

1. JDK:


Veillez d'abord à bien installé le dernier JDK (Java Development Kit) de chez sun. http://java.sun.com/j2se/1.4.2/download.html

Télécharger le SDK, non le JRE.

2. Java Wireless Toolkit :

Le java wireless toolkit de chez sun offre quelques outils rudimentaires de configuration et de gestion du code. Mais surtout il comprend des émulateurs de terminaux mobiles.
http://java.sun.com/products/sjwtoolkit/download-2_2.html .

Une fois Le JDK et le Java wireless Toolkit installé nous allons nous pencher sur les outils de développement.


II. Outils de développement :


1. Eclipse :

est un environnement de développement libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant potentiellement de créer des projets de développement mettant en œuvre n'importe quel langage de programmation. Eclipse IDE est principalement écrit en Java.

pour télécharger Eclipse c'est ici : Eclipse

1.1 EclipseMe :

C'est le plug-in propre à eclipse qui permet le développement d'applications J2ME reposant sur MIDP en utilisant un Wireless Toolkit.

Les fonctionnalités proposées par ce plug-in sont :

  • Le support de plusieurs Wireless Toolkit
  • Un assistant de création de projets de type Midlet Suite
  • Un assistant de création de Midlets
  • Un éditeur pour les fichiers .jad
  • Une compilation incrémentale avec pré-vérification
  • Le débogage du code des Midlets
  • L'exécution dans les émulateurs fournis avec le WirelessToolkit
  • La création d'un package pour les applications J2ME
  • La création d'un package obscurci avec Proguard
  • Le support du mode « Over The Air »

Le site officiel de ce plug-in est à l'url : http://eclipseme.org/

1.2 Installation :

Une fois le pack eclipseMe télécharger il suffit alors de suivre les étapes suivantes :
  • Utilisez l'option « Mise à jour de logiciels/Rechercher et installer » du menu Aide.
  • Sélectionnez « Rechercher les nouveaux dispositifs à installer » et cliquez sur le bouton « Suivant ».
  • Cliquez sur le bouton « Nouveau site archivé »
  • Sélectionnez le fichier et cliquez sur « Ouvrir »
  • Dans l'arborescence des sites, sélectionnez eclipseme.feature_x.x.x_site.zip et cliquez sur le bouton « Suivant »
  • Sélectionnez les dispositifs « EclipseMe » et « eclipseme.features.siemens »
  • Lisez la licence et si vous l'acceptez cliquez sur « J'accepte les termes du contrat » et cliquez sur le bouton « Suivant »
  • Cliquez sur le bouton « Fin »
  • Lors de l'affichage de la boîte de dialogue « Vérification du dispositif », cliquez sur le bouton « Installer »
  • Acceptez de relancer le plan de travail.
Voilà vous disposer maintenant d'un environnement de développement J2me sous Eclipse.

2. Netbeans :

Netbeans est un environnement de développment pour java, placé en open source par Sun sous licence CDDL . En plus de Java, NetBeans permet également de supporter différents autres langages.
Il comprend toutes les caractéristiques d'un IDE moderne (éditeur en couleur, projets multi-langage, refactoring, éditeur graphique d'interfaces et de pages web).

NetBeans est lui-même développé en Java, ce qui peut le rendre assez lent et gourmand en ressources mémoires.

Pour télécharger Netbeans c'est ici : http://www.netbeans.info/downloads/index.php


2.1 Mobility Pack :

C'est le plug-in propre à Netbeans qui permet le développement d'applications J2ME reposant sur MIDP en utilisant un Wireless Toolkit .

Pour télécharger le Mobility Pack c'est ici : http://www.netbeans.org/kb/50/mobility.html

Java Mobile Information


Introduction :

La plateforme Java 2 Micro Edition (J2ME) a été créée pour le marché de consommateur d'équipement à ressources limitées de mémoire et de processeur tels que : téléphones portables, smart cartes, palms, organizers et mini-ordinateurs.

Java Mobile (J2ME) permet de lancer Java sur l'équipement ayant des ressources limitées. Pour cet objectif, J2ME adapte la technologie de Java qui existe. Voyons 3 points de J2ME : la configuration, les profiles et le Midlet. L'information détailler vous pouvez trouver sur le site officiel de Sun Microsystems: http://java.sun.com/j2me/

1. La configuration

Elle détermine le milieu d'exécution de J2ME. Elle inclut une machine virtuelle limitée par rapport à VM standard et d'un nombre des classes principales, en général, empruntées à J2SE.Actuellement, il y a 2 configurations déterminées : configuration des mobiles de communication à ressources limitées (Connected Limited Device Configuration, CLDC) et configuration des mobiles de communication (Connected Device Configuration, CDC). La première configuration est orientée vers le mini mobile équipé de processeurs à 16/32 bits dont le mémoire est de 128 KB minimum.

Le point avantageux de J2ME CLDC consiste en une machine virtuelle K Virtuel Machine (KMV), mise au point spécialement pour les interfaces de réseau à mémoire et ressources limitées. La deuxième configuration de J2ME CDC est orientée vers les modèles électroniques prévues à être montés à l'intérieur, plus compliqués tels que : smart communicateurs, pagers, PDA, (Sony PlayStation, XBox, etc.). Normalement, les mobiles pareils inclus les processeurs à 32 bits fonctionnant comme contrôleur et de mémoire de plus de 2 Mb utilisé pour sauvegarder la machine virtuelle et la bibliothèque. CDC met en marche la machine virtuelle C Virtuel Machine (CVM).

CDC est composé de toutes les classes de CLDC et contient encore plus de classes de J2SE. La différence principale entre CDC et CLDC est ce que CDC VM maintient toutes les possibilités de J2SE VM y compris native programming interfaces.

2. Profile

Le profile élargit la configuration en ajoutant des classes spécifiques au nombre de classes générales, définies dans leur configuration. Autrement dit, le profile assure la fonctionnalité indispensable qui manque dans la configuration générale. Cela peut être une interface d'utilisateur, un mécanisme de sauvegarde, etc. A part MIDP profile ( Mobile Information Device Profile) il en existe d'autres.

annuaire blogscreer blog gratuit

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Web Hosting