×
Namespaces

Variants
Actions
Revision as of 08:22, 8 December 2011 by hamishwillee (Talk | contribs)

Como adicionar um vídeo para um contato em Java ME

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Compatibilidade
Plataforma(s):
Series 40
Symbian

Artigo
Tradução:
Por maiconherverton
Última alteração feita por hamishwillee em 08 Dec 2011

Contents

Resumo

Muitos dos recentes aparelhos S60 e Series 40 suportam a característica de adicionar um vídeo como um 'ringing tone' do contato. No entanto, não existe tal possibilidade no PIM API (JSR-75), não há nenhum campo de VIDEO na classe 'Contact. Portanto, adicionar um vídeo a um contato não era possível em Java ME. Agora isto tem se tornado possível em alguns dos aparelhos Series 40 5° Edição FP1. Este recurso está incluído nos dispositivos Series 40 5ª Ed. FP1, que tem versão de software 5.xx ou superior. Você pode verificar a versão do software que você tem, digitando *#0000# no seu telefone.

Nota: O valor inteiro do novo campo de vídeo é igual a PIMItem.EXTENDED_FIELD_MIN_VALUE (= 16777216).


Como usar o campo de vídeo:

1) certifique-se de que você tem um vídeo em seu dispositivo e verifique seu nome e o caminho para uso posterior (ver item 4) abaixo

2) criar uma ContactList: ContactList contacts = (ContactList) pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);

3) criar um contato: contact = contacts.createContact();

4) verificar, se esse novo campo é suportado e, se for, adicione o vídeo para o contato usando o método Contact.addString():

	if (contacts.isSupportedField(PIMItem.EXTENDED_FIELD_MIN_VALUE)) {
contact.addString(PIMItem.EXTENDED_FIELD_MIN_VALUE, PIMItem.ATTR_NONE,
"file:///C:/Videos/Video000.3gp");
}

O código fonte completo para um de MIDlet de teste:

Código fonte: VideoFieldMIDlet.java

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
 
public class VideoFieldMIDlet extends MIDlet {
private ContactForm form;
 
public void startApp() {
form = new ContactForm("VideoFieldMIDlet", this);
Display.getDisplay(this).setCurrent(form);
}
 
public void pauseApp() {
}
 
public void destroyApp(boolean unconditional) {
}
}

Código fonte: ContactForm.java

import javax.microedition.lcdui.*;
import javax.microedition.pim.*;
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.io.file.*;
 
public class ContactForm extends Form implements CommandListener {
private static final int VIDEO_URL = 16777216; // igual a PIMItem.EXTENDED_FIELD_MIN_VALUE
private TextField firstnamefield;
private TextField lastnamefield;
private TextField numberfield;
private TextField videofield;
private Command addCommand;
private Command exitCommand;
private PIM pim;
private ContactList contacts = null;
private VideoFieldMIDlet midlet;
private String first_name;
private String last_name;
private String fullname;
private String number;
 
public ContactForm(String title, VideoFieldMIDlet midlet) {
super(title);
this.midlet = midlet;
firstnamefield = new TextField("First name:", "", 30, TextField.ANY);
lastnamefield = new TextField("Last name:", "", 30, TextField.ANY);
numberfield = new TextField("Number:", "", 50, TextField.PHONENUMBER);
videofield = new TextField("Video file:", "", 100, TextField.ANY);
videofield.setString("file:///C:/Videos/Video000.3gp");
append(firstnamefield);
append(lastnamefield);
append(numberfield);
append(videofield);
addCommand = new Command("Add contact", Command.SCREEN, 1);
exitCommand = new Command("Exit", Command.EXIT, 1);
addCommand(addCommand);
addCommand(exitCommand);
setCommandListener(this);
}
 
private void writeContact() {
first_name = firstnamefield.getString();
last_name = lastnamefield.getString();
fullname = first_name + " " + last_name;
number = numberfield.getString();
pim = PIM.getInstance();
try {
contacts = (ContactList) pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
}
catch (PIMException pime) {
append("Opening PIM list: exp: " + pime);
return;
}
catch (SecurityException se) { // o aplicativo não tem permissão para acessar a lista
append("Exp: " + se);
}
try {
Contact contact = contacts.createContact();
String[] name = new String[contacts.stringArraySize(Contact.NAME)];
String video = videofield.getString();
if (contacts.isSupportedArrayElement(Contact.NAME, Contact.NAME_FAMILY))
name[Contact.NAME_FAMILY] = last_name;
if (contacts.isSupportedArrayElement(Contact.NAME, Contact.NAME_GIVEN))
name[Contact.NAME_GIVEN] = first_name;
contact.addStringArray(Contact.NAME, PIMItem.ATTR_NONE, name);
if (contacts.isSupportedField(Contact.TEL))
contact.addString(Contact.TEL, Contact.ATTR_HOME, number);
// Usa o método Contact.addString() ao invés do Contact.addBinary()
// Adicionando um arquivo de vídeo no campo de vídeo de contato, conforme mostrado abaixo.
if (contacts.isSupportedField(VIDEO_URL) && checkVideoURL(video))
contact.addString(VIDEO_URL, PIMItem.ATTR_NONE, video);
// Essas linhas que trabalhar muito.
//contact.addString(PIMItem.EXTENDED_FIELD_MIN_VALUE, PIMItem.ATTR_NONE, video);
//contact.addString(16777216, PIMItem.ATTR_NONE, video);
else {
append("Arquivo não existe!\n");
}
contact.commit();
if (contacts.isSupportedField(Contact.UID))
append("Contact UID: " + contact.getString(Contact.UID, 0) + "\n");
contacts.close();
}
catch (UnsupportedFieldException ufe) {
append("Exp: " + ufe);
}
catch (PIMException pime) {
append("commit(): exp: " + pime);
}
catch (IllegalArgumentException iae) {
append("Exp: " + iae);
}
append("Contact added.\n");
}
 
public boolean checkVideoURL(String url) {
// checa se o arquivo de vídeo existe.
boolean exists = false;
try {
FileConnection fconn = (FileConnection)Connector.open(url, Connector.READ);
if (fconn.exists()) exists = true;
fconn.close();
}
catch (IOException ioe) {
System.out.println("IOException: " + ioe.getMessage());
}
return exists;
}
 
public void commandAction(Command c, Displayable d) {
if (c == addCommand) {
writeContact();
}
if (c == exitCommand) {
midlet.notifyDestroyed();
}
}
}

Veja também

106 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×