sábado, 6 de dezembro de 2008

Convertendo SVG em JavaFx (JFX)

Ontem comecei a me aventurar no JavaFX, e na hora de fazer o download do Netbeans com o plugin para JavaFX, encontrei o "JavaFX 1.0 Production Suite" que diz integrar melhor o fluxo de trabalho entre os designers e desenvolvedores. Logo pensei que seria um editor visual de SVG, mas é apenas um conversor de SVG para JavaFX. Comecei outra caçada para encontrar um editor visual de SVG, tentei o Flash CS3 mas não consegui nada, então resolvi procurar no repositório do ubuntu e encontrei o Inkscape que usa como base o formato SVG. Criei uma pequena imagem SVG e mandei para o windows para testar no JavaFX do Netbeans.... e deu certo.

Não acho necessário pela facilidade, mas depois monto um tutorial.

Como saber quais dispositivos móveis suportam uma API.

A Sun divulga uma lista com os aparelhos que suportam as JSRs voltadas para o desenvolvimento móvel, é de grande ajuda no início de um projeto e na implantação do mesmo: http://developers.sun.com/mobility/device/device
Obs.: A lista não é completa, mas quebra um galho. Um exemplo é o aparelho que comprei, o E51 que possuí Location API e não consta na lista.

domingo, 23 de novembro de 2008

Detectando as portas de comunicação do celular.

Em alguns aparelhos e para alguns recursos a única maneira de acessar portas de comunicação é com o uso do Generic Connection Framework (GCF) utilizando o nível mais baixo disponível para conexões na API do J2ME. Obtive muita experiência com o estas portas de comunicação ou CommPorts quando fazia testes com o IR (Infra-Red) de meu Palm Zire 72, antigamente poucos aparelhos suportavam a JSR 082 que é mais conhecida por auxiliar a utilização de comunicações via Bluetooth, mas também serve para a porta de IR. Além disso, muitos aparelhos novos com a JSR 82 não auxiliam a utilização do IR. Para isso pesquisei várias soluções para a utilização do IR, e uma delas seria tratar a sua porta como uma porta comum de USB.

Para descobrir as portas disponíveis de seu dispositivo para utilização com J2ME, existe uma propriedade que deve ser implementada em todo dispositivo que suporte J2ME, que é a: "microedition.commports". Esta propriedade retorna as portas separadas por uma vírgula (,) e que precisam apenas ser separadas para a sua utilização. Um exemplo do valor retornado por essa propriedade seria "usb0,ir0,bt0,bt1".

Um código que costumo utilizar para retornar as portas em um Vector seria o seguinte:


public static Vector getPorts() {
String ports = System.getProperty("microedition.commports");
Vector vector = new Vector();

if (ports.length() <= 0) return vector;
int index = ports.indexOf(",");
while (index > -1) {
String port = ports.substring(0, index);
vector.addElement(port);
ports = ports.substring(index+1);
index = ports.indexOf(",");
}
vector.addElement(ports);

return vector;
}


Talvez você encontre um algorítmo melhor para isto, pois a classe String no CLDC não possuí método próprio para separar a string por um pattern. Mas aí está, e funciona.

Talk to me: