Bloqueio e envio de sms pelo celular, tem como?

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 :cry:.

  • 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.

Vlw

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?

[code]# Default values for SMS internal implementation.
com.sun.midp.io.j2me.sms.Impl: com.sun.midp.io.j2me.sms.DatagramImpl
com.sun.midp.io.j2me.sms.DatagramHost: localhost
com.sun.midp.io.j2me.sms.DatagramPortIn: 54321
com.sun.midp.io.j2me.sms.DatagramPortOut: 12345

Permissions to use specific SMS features

com.sun.midp.io.j2me.sms.permission.receive: true
com.sun.midp.io.j2me.sms.permission.send: true

Permissions to use specific CBS features

com.sun.midp.io.j2me.cbs.permission.receive: true

Permissions to use connection handlers

javax.microedition.io.Connector.sms: true
javax.microedition.io.Connector.cbs: true

Alternate SMS port for CBS emulation

com.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 address

wireless.messaging.sms.smsc: +17815511212
############# WMA ##################

[/code]

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:

[code]public void EnviaSMS(String numero, String mensagem) throws Exception{
String url = “sms://” + numero; //concatena numero com assinatura padrao para envio de sms
MessageConnection conexao = (MessageConnection) Connector.open(url);
TextMessage mtexto = (TextMessage) conexao.newMessage(MessageConnection.TEXT_MESSAGE);
mtexto.setPayloadText(mensagem); //define a mensagem a ser enviada, vinda pelo parametro
conexao.send(mtexto); //envia mensagem
conexao.close(); //fecha conexao
flag = true;
}

public void startReceiver(){
    if (flag == true){
    try{
        String urla = "sms://:1234";
        if (mc == null){
            mc = (MessageConnection) Connector.open(urla);
            mc.setMessageListener(this);
            status.setText("Esperando por mensagens na porta 1234..");
        } 
    } catch (Exception e){
        status.setText("Não é possível abrir porta 1234, motivo: " + e.getMessage());
    }
    recebe = new Thread(this);
    recebe.start();
    }
}[/code]

[quote=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[/quote]

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.

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. :cry: