Por favor, gostaria de saber pelo menos como acessar ou ativar a camera de um celular , isso feito por uma apliação j2me.
Se alguem souber, ou puder dar alguma diga de estudo ja ficaria muito agradecido, obrigado :lol:
Bom, ja consegui acessar a camera apartir dessas 3 classes, mas a função também desse programinha era tirar foto, passeei pro celular e ele acessou a camera, só que não tira fotos, alguem poderia me ajudar?
[code]import javax.microedition.midlet.;
import javax.microedition.lcdui.;
public class CameraMIDlet extends MIDlet
{
private CameraCanvas cameraCanvas = null;
private DisplayCanvas displayCanvas = null;
public CameraMIDlet()
{
}
public void startApp()
{
Displayable current = Display.getDisplay(this).getCurrent();
if (current == null)
{
// first call
cameraCanvas = new CameraCanvas(this);
displayCanvas = new DisplayCanvas(this);
Display.getDisplay(this).setCurrent(cameraCanvas);
cameraCanvas.start();
}
else
{
// returning from pauseApp
if (current == cameraCanvas)
{
cameraCanvas.start();
}
Display.getDisplay(this).setCurrent(current);
}
}
public void pauseApp()
{
if (Display.getDisplay(this).getCurrent() == cameraCanvas)
{
cameraCanvas.stop();
}
}
public void destroyApp(boolean unconditional)
{
if (Display.getDisplay(this).getCurrent() == cameraCanvas)
{
cameraCanvas.stop();
}
}
private void exitRequested()
{
destroyApp(false);
notifyDestroyed();
}
void cameraCanvasExit()
{
exitRequested();
}
void cameraCanvasCaptured(byte[] pngData)
{
cameraCanvas.stop();
displayCanvas.setImage(pngData);
Display.getDisplay(this).setCurrent(displayCanvas);
}
void displayCanvasBack()
{
Display.getDisplay(this).setCurrent(cameraCanvas);
cameraCanvas.start();
}
}
[/code]
[code] import javax.microedition.lcdui.;
import javax.microedition.media.;
import javax.microedition.media.control.*;
import java.io.IOException;
class CameraCanvas extends Canvas
implements CommandListener
{
private final CameraMIDlet midlet;
private final Command exitCommand;
private Command captureCommand = null;
private Player player = null;
private VideoControl videoControl = null;
private boolean active = false;
// Two strings for displaying error messages
private String message1 = null;
private String message2 = null;
CameraCanvas(CameraMIDlet midlet)
{
this.midlet = midlet;
exitCommand = new Command(“Exit”, Command.EXIT, 1);
addCommand(exitCommand);
setCommandListener(this);
try
{
player = Manager.createPlayer(“capture://video”);
player.realize();
// Grab the video control and set it to the current display.
videoControl = (VideoControl)(player.getControl(“VideoControl”));
if (videoControl == null)
{
discardPlayer();
message1 = “Unsupported:”;
message2 = “Can’t get video control”;
}
else
{
videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,
this);
// centre video, letting it be clipped if it’s too big
int canvasWidth = getWidth();
int canvasHeight = getHeight();
int displayWidth = videoControl.getDisplayWidth();
int displayHeight = videoControl.getDisplayHeight();
int x = (canvasWidth - displayWidth) / 2;
int y = (canvasHeight - displayHeight) / 2;
videoControl.setDisplayLocation(x, y);
captureCommand = new Command(“Capture”, Command.SCREEN, 1);
addCommand(captureCommand);
}
}
catch (IOException ioe)
{
discardPlayer();
message1 = “IOException:”;
message2 = ioe.getMessage();
}
catch (MediaException me)
{
discardPlayer();
message1 = "MediaException:";
message2 = me.getMessage();
}
catch (SecurityException se)
{
discardPlayer();
message1 = "SecurityException";
message2 = se.getMessage();
}
}
// Called in case of exception to make sure invalid players are closed
private void discardPlayer()
{
if (player != null)
{
player.close();
player = null;
}
videoControl = null;
}
public void paint(Graphics g)
{
g.setColor(0x00FFFF00); // yellow
g.fillRect(0, 0, getWidth(), getHeight());
if (message1 != null)
{
g.setColor(0x00000000); // black
g.drawString(message1, 1, 1, Graphics.TOP | Graphics.LEFT);
g.drawString(message2, 1, 1 + g.getFont().getHeight(),
Graphics.TOP | Graphics.LEFT);
}
}
synchronized void start()
{
if ((player != null) && !active)
{
try
{
player.start();
videoControl.setVisible(true);
}
catch (MediaException me)
{
message1 = “Media exception:”;
message2 = me.getMessage();
}
catch (SecurityException se)
{
message1 = “SecurityException”;
message2 = se.getMessage();
}
active = true;
}
}
synchronized void stop()
{
if ((player != null) && active)
{
try
{
videoControl.setVisible(false);
player.stop();
}
catch (MediaException me)
{
message1 = “MediaException:”;
message2 = me.getMessage();
}
active = false;
}
}
public void commandAction(Command c, Displayable d)
{
if (c == exitCommand)
{
midlet.cameraCanvasExit();
}
else if (c == captureCommand)
{
takeSnapshot();
}
}
public void keyPressed(int keyCode)
{
if (getGameAction(keyCode) == FIRE)
{
takeSnapshot();
}
}
private void takeSnapshot()
{
if (player != null)
{
try
{
byte[] pngImage = videoControl.getSnapshot(null);
midlet.cameraCanvasCaptured(pngImage);
}
catch (MediaException me)
{
message1 = “MediaException:”;
message2 = me.getMessage();
}
}
}
}
[/code]
import javax.microedition.lcdui.*;
class DisplayCanvas
extends Canvas
implements CommandListener
{
private final CameraMIDlet midlet;
private Image image = null;
DisplayCanvas(CameraMIDlet midlet)
{
this.midlet = midlet;
addCommand(new Command("Back", Command.BACK, 1));
setCommandListener(this);
}
public void paint(Graphics g)
{
g.setColor(0x0000FFFF); // cyan
g.fillRect(0, 0, getWidth(), getHeight());
if (image != null)
{
g.drawImage(image,
getWidth()/2,
getHeight()/2,
Graphics.VCENTER | Graphics.HCENTER);
}
}
void setImage(byte[] pngImage)
{
image = Image.createImage(pngImage, 0, pngImage.length);
}
public void commandAction(Command c, Displayable d)
{
midlet.displayCanvasBack();
}
}