×
Namespaces

Variants
Actions

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 lpvalente em 05 Jan 2014

Contents

Resumo

Este artigo mostra como associar um video a um contato, usando Java ME.

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 o campo de vídeo pode ser usado no aparelho. Caso seja, 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

This page was last modified on 5 January 2014, at 17:53.
127 page views in the last 30 days.
×