Olá pessoal, depois de estudar um pouco de java ME estou tentando fazer uma aplicação que possa bloquear envio e recebimento de sms do celular, como um firewall, mas parece que diversos fatores não permitem. Minha aplicação até funciona no simulador com Netbeans 6 + sun WTK apenas, mas no w810 real não. O que pode ser?
Penso que os motivos possam ser:
não dá pra fazer java trabalhar em baixo nivel com o celular, pois essa operação quem faz é nativa do celular e nada passa por java.
precisa de um IDE específico para cada fabricante de celular, modelo?. exemplo: IDE específico do sony ericsson
esquema de portas. Segundos os tutoriais que achei, no uso do simulador java wireless tools kit precisa-se definir uma porta de envio. No celular usa-se uma padrão(que desconheço ou não tem) e minha aplicação vai rodar em cima dele usando outra porta .
nas configurações de recebimento de sms do w810 tem +555191115300. Esse é o número porque estou em POA ou é um numero padrão, tipo porta que o chip da claro define?
Se alguem tiver um exemplo de aplicação para envio ou recebimento de sms funcionando num aparelho fisico eu agradeço, porque aqui só funciona no simulador.
Ae pessoal, se ninguem souber do que perguntei podem me explicar porque a aplicação que fiz envia e recebe SMS apenas no simulador netbeans? Onde ou o que devo alterar para funcionar com a operadora no celular, exemplo Claro?
Tem a ver com o arquivo internal.config do netbeans?
# Default values for SMS internal implementation.com.sun.midp.io.j2me.sms.Impl:com.sun.midp.io.j2me.sms.DatagramImplcom.sun.midp.io.j2me.sms.DatagramHost:localhostcom.sun.midp.io.j2me.sms.DatagramPortIn:54321com.sun.midp.io.j2me.sms.DatagramPortOut:12345## Permissions to use specific SMS featurescom.sun.midp.io.j2me.sms.permission.receive:truecom.sun.midp.io.j2me.sms.permission.send:true## Permissions to use specific CBS featurescom.sun.midp.io.j2me.cbs.permission.receive:true## Permissions to use connection handlersjavax.microedition.io.Connector.sms:truejavax.microedition.io.Connector.cbs:true## Alternate SMS port for CBS emulationcom.sun.midp.io.j2me.sms.CBSPort:24680## MIDP 1.0.3 flag to enable datagram and comm connections.com.sun.midp.io.enable_extra_protocols:true## Default SMS Service Center addresswireless.messaging.sms.smsc:+[telefoneremovido]############# WMA ##################
Não sei se precisa por o número do SMSC da claro. Meus metodos de enviar e receber estão configurados da seguinte forma:
publicvoidEnviaSMS(Stringnumero,Stringmensagem)throwsException{Stringurl="sms://"+numero;//concatena numero com assinatura padrao para envio de smsMessageConnectionconexao=(MessageConnection)Connector.open(url);TextMessagemtexto=(TextMessage)conexao.newMessage(MessageConnection.TEXT_MESSAGE);mtexto.setPayloadText(mensagem);//define a mensagem a ser enviada, vinda pelo parametroconexao.send(mtexto);//envia mensagemconexao.close();//fecha conexaoflag=true;}publicvoidstartReceiver(){if(flag==true){try{Stringurla="sms://:1234";if(mc==null){mc=(MessageConnection)Connector.open(urla);mc.setMessageListener(this);status.setText("Esperando por mensagens na porta 1234..");}}catch(Exceptione){status.setText("Não é possível abrir porta 1234, motivo: "+e.getMessage());}recebe=newThread(this);recebe.start();}}
P
PoneyMan
javamador:
não dá pra fazer java trabalhar em baixo nivel com o celular, pois essa operação quem faz é nativa do celular e nada passa por java.
Vlw
Prontinho, vc mesmo respondeu sua pergunta.
Quer realmente fazer esta triagem ? Mude para celulares com Sistema Operacional Symbian e programe em C++ e boa sorte.O limite é a tua imaginação e capacidade. Saia da caixa do Java.
J
javamador
Ae Boone, realmente é uma merda isso que quis fazer pra trabalho final de faculdade, é praticamente impossivel, mas olhando mais a fundo descobri que precisa alterar o middleware do simulador (uma classe java padrao, pelo que parece).
Alguem sabe como faz isso? recompilador uma classe alterada pra depois testar no simulador?
To tentando mexer num tal de phoneME, mas só tem codigo fonte, tá muito dificil entender pelo site o que eles explicam. Pensava que era um IDE, ambiente tipo netbeans.