package com.robohobby.me; import java.io.IOException; import java.util.Calendar; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.media.Manager; import javax.microedition.media.MediaException; import javax.microedition.media.Player; import javax.microedition.media.control.VideoControl; /** * @Ads.Taglet * RobotMIDlet * @author Oleg Lyubchenko */ public class RobotMIDlet extends MIDlet implements CommandListener { public boolean midletPaused = false; private Player player = null; private VideoControl videoControl = null; private boolean active = false; //public StringItem messageItem; byte[] imageByte; javax.microedition.lcdui.Image image; int w = 256; //160; //256; //320; //640; //160; //132; int h = 192; //120; //192; //240; //480; //120; //114; int[] rgbData = new int[w * h]; CallBacks callBacks = CallBacks.getInstance(); //<editor-fold defaultstate="collapsed" desc=" Generated Fields "> private Command exitCommand; private Command doSnapShotCommand; private Command infoItemCommand; private Command itemCommand; private Command screenCommand; private Command getRootsItemCommand; private Form form; private StringItem infoStringItem; //</editor-fold> /** * The RobotMIDlet constructor. */ public RobotMIDlet() { callBacks.robotMIDlet = this; callBacks.discUtils = new DiscUtils(); } //<editor-fold defaultstate="collapsed" desc=" Generated Methods "> //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Method: initialize "> /** * Initilizes the application. * It is called only once when the MIDlet is started. * The method is called before the <code>startMIDlet</code> method. */ private void initialize() { // write pre-initialize user code here // write post-initialize user code here } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Method: startMIDlet "> /** * Performs an action assigned to the Mobile Device - MIDlet Started point. */ public void startMIDlet() { // write pre-action user code here switchDisplayable(null, getForm()); // write post-action user code here } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Method: resumeMIDlet "> /** * Performs an action assigned to the Mobile Device - MIDlet Resumed point. */ public void resumeMIDlet() { // write pre-action user code here // write post-action user code here } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Method: switchDisplayable "> /** * Switches a current displayable in a display. * The <code>display</code> instance is taken from <code>getDisplay</code> method. * This method is used by all actions in the design for switching displayable. * @param alert the Alert which is temporarily set to the display; * if <code>null</code>, then <code>nextDisplayable</code> is set immediately * @param nextDisplayable the Displayable to be set */ public void switchDisplayable(Alert alert, Displayable nextDisplayable) { // write pre-switch user code here Display display = getDisplay(); if (alert == null) { display.setCurrent(nextDisplayable); } else { display.setCurrent(alert, nextDisplayable); } // write post-switch user code here //CameraForm cameraForm = new CameraForm(); //display.setCurrent( cameraForm ); //nextDisplayable); } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Method: commandAction for Displayables "> /** * Called by a system to indicated that a command has been invoked on a particular displayable. * @param command the Command that was invoked * @param displayable the Displayable where the command was invoked */ public void commandAction(Command command, Displayable displayable) { // write pre-action user code here if (displayable == form) { if (command == doSnapShotCommand) { // write pre-action user code here // write post-action user code here doSnapShot(); } else if (command == exitCommand) { // write pre-action user code here exitMIDlet(); // write post-action user code here } else if (command == getRootsItemCommand) { // write pre-action user code here // write post-action user code here getRoots(); } } // write post-action user code here } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: exitCommand "> /** * Returns an initiliazed instance of exitCommand component. * @return the initialized component instance */ public Command getExitCommand() { if (exitCommand == null) { // write pre-init user code here exitCommand = new Command("Exit", Command.EXIT, 0); // write post-init user code here } return exitCommand; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: form "> /** * Returns an initiliazed instance of form component. * @return the initialized component instance */ public Form getForm() { if (form == null) { // write pre-init user code here form = new Form("www.RoboHobby.com", new Item[] { getInfoStringItem() }); form.addCommand(getExitCommand()); form.addCommand(getDoSnapShotCommand()); form.addCommand(getGetRootsItemCommand()); form.setCommandListener(this); // write post-init user code here //form.append(infoStringItem); initCamera(); } return form; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: doSnapShotCommand "> /** * Returns an initiliazed instance of doSnapShotCommand component. * @return the initialized component instance */ public Command getDoSnapShotCommand() { if (doSnapShotCommand == null) { // write pre-init user code here doSnapShotCommand = new Command("SnapAndSave", Command.ITEM, 0); // write post-init user code here } return doSnapShotCommand; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: itemCommand "> /** * Returns an initiliazed instance of itemCommand component. * @return the initialized component instance */ public Command getItemCommand() { if (itemCommand == null) { // write pre-init user code here itemCommand = new Command("Item", Command.ITEM, 0); // write post-init user code here } return itemCommand; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: infoItemCommand "> /** * Returns an initiliazed instance of infoItemCommand component. * @return the initialized component instance */ public Command getInfoItemCommand() { if (infoItemCommand == null) { // write pre-init user code here infoItemCommand = new Command("State: ", Command.ITEM, 0); // write post-init user code here } return infoItemCommand; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: infoStringItem "> /** * Returns an initiliazed instance of infoStringItem component. * @return the initialized component instance */ public StringItem getInfoStringItem() { if (infoStringItem == null) { // write pre-init user code here infoStringItem = new StringItem("Info: ", ""); // write post-init user code here } return infoStringItem; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: screenCommand "> /** * Returns an initiliazed instance of screenCommand component. * @return the initialized component instance */ public Command getScreenCommand() { if (screenCommand == null) { // write pre-init user code here screenCommand = new Command("Screen", Command.SCREEN, 0); // write post-init user code here } return screenCommand; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc=" Generated Getter: getRootsItemCommand "> /** * Returns an initiliazed instance of getRootsItemCommand component. * @return the initialized component instance */ public Command getGetRootsItemCommand() { if (getRootsItemCommand == null) { // write pre-init user code here getRootsItemCommand = new Command("Roots", Command.ITEM, 0); // write post-init user code here } return getRootsItemCommand; } //</editor-fold> /** * Returns a display instance. * @return the display instance. */ public Display getDisplay () { return Display.getDisplay(this); } /** * Exits MIDlet. */ public void exitMIDlet() { switchDisplayable (null, null); destroyApp(true); notifyDestroyed(); } private void getRoots() { this.callBacks.discUtils.getRoots(); } public void doSnapShot() { System.out.println( "doSnapShot()" ); captureImage(); Calendar c = Calendar.getInstance(); String fileName = StrCalendar.calendarToStrFs(c); callBacks.discUtils.writeToDisk( fileName+".jpg", imageByte); } /** * Called when MIDlet is started. * Checks whether the MIDlet have been already started and initialize/starts or resumes the MIDlet. */ public void startApp() { System.gc(); Displayable current = Display.getDisplay(this).getCurrent(); if(current ==null) //first call { startMIDlet(); start(); } else //returning from pauseApp { if(current == form) //callBacks.cameraForm) { start(); } Display.getDisplay(this).setCurrent(current); } /* if (midletPaused) { resumeMIDlet (); } else { initialize (); startMIDlet (); } midletPaused = false; */ } /** * Called when MIDlet is paused. */ public void pauseApp() { midletPaused = true; } /** * Called to signal the MIDlet to terminate. * @param unconditional if true, then the MIDlet has to be * unconditionally terminated and all resources has to be released. */ public void destroyApp(boolean unconditional) { } public void initCamera() { try { player = Manager.createPlayer("capture://video"); player.realize(); //Grap the Video control and set it to the current display videoControl = (VideoControl) (player.getControl("VideoControl")); if (videoControl != null) { form.append((Item) (videoControl.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null))); } else { infoStringItem.setText( "No video control" ); } } catch (IOException ioe) { infoStringItem.setText( "IOException: " + ioe.getMessage() ); } catch (MediaException me) { infoStringItem.setText( "Camera() Media Exception: " + me.getMessage() ); } catch (SecurityException se) { infoStringItem.setText( "Security Exception: " + se.getMessage() ); } catch (Exception e) { infoStringItem.setText( "Exception: " + e ); } } synchronized void start() { if (!active) { try { if (player != null) { player.start(); } if (videoControl != null) { videoControl.setVisible(true); } } catch (MediaException me) { infoStringItem.setText( "start() Media Exception: " + me.getMessage()); } catch (SecurityException se) { infoStringItem.setText( "start() Security Exception: " + se.getMessage()); } catch (Exception e) { infoStringItem.setText( "start() Exception: " + e.getMessage()); } active = true; } } synchronized void stop() { if (active) { try { if (videoControl != null) { videoControl.setVisible(false); } if (player != null) { player.stop(); } } catch (MediaException me) { infoStringItem.setText( "stop() Media Exception: " + me.getMessage()); } active = false; } } public void captureImage() { System.gc(); try { imageByte = videoControl.getSnapshot("encoding=jpeg&width=" + w + "&height=" + h); image = javax.microedition.lcdui.Image.createImage(imageByte, 0, imageByte.length); w = image.getWidth(); h = image.getHeight(); infoStringItem.setText( "image OK." + " w=" + w + " h=" + h); } catch (Exception e) { infoStringItem.setText( "Capt Error! e=" + e); } } /////////////////////////////////////////////////////////////// }
Showing posts with label Micro Devices. Show all posts
Showing posts with label Micro Devices. Show all posts
Tuesday, August 19, 2014
remember java me camera example
remember java me midlet list , display , alert
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package simnumberkeeper;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author boroo
*/
public class Midlet extends MIDlet implements CommandListener {
Display display;
List list;
public Midlet() {
}
public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(getIndexDisplay());
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
private Screen getIndexDisplay() {
list = new List("SIM Numbers", List.MULTIPLE);
list.append("string part 1", null);
list.append("string part 2", null);
list.append("string part 3", null);
list.addCommand(new Command("OKEY", Command.ITEM, 1));
list.setCommandListener(this);
return list;
}
public void commandAction(Command c, Displayable d) {
int s = list.size();
String msg = "item: ";
for (int i = 0; i < s; i++) {
if (list.isSelected(i)) {
msg = msg + " :" + i;
}
}
Alert alert = new Alert("My Alert", msg, null, AlertType.CONFIRMATION);
display.setCurrent(alert, d);
}
}
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package simnumberkeeper;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author boroo
*/
public class Midlet extends MIDlet implements CommandListener {
Display display;
List list;
public Midlet() {
}
public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(getIndexDisplay());
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
private Screen getIndexDisplay() {
list = new List("SIM Numbers", List.MULTIPLE);
list.append("string part 1", null);
list.append("string part 2", null);
list.append("string part 3", null);
list.addCommand(new Command("OKEY", Command.ITEM, 1));
list.setCommandListener(this);
return list;
}
public void commandAction(Command c, Displayable d) {
int s = list.size();
String msg = "item: ";
for (int i = 0; i < s; i++) {
if (list.isSelected(i)) {
msg = msg + " :" + i;
}
}
Alert alert = new Alert("My Alert", msg, null, AlertType.CONFIRMATION);
display.setCurrent(alert, d);
}
}
Subscribe to:
Posts (Atom)