2009-11-13 7 views
1

나는 SMS를 보내고 선택적으로 수신해야하는 MIDlet을 실행하기 위해 Sun WTK를 사용하고 있습니다. WMA 콘솔을 사용하여 미들 릿으로 메시지를 보내고받을 수 있지만 내 응용 프로그램을 사용하여 동일한 작업을 수행하고 싶습니다.맞춤 애플리케이션의 WTK 에뮬레이터에서 SMS 수신

나는 스니핑을했는데 메시지가 UDP에 의해 WMA 콘솔에서 에뮬레이터로 전송된다는 것을 알게되었습니다.

답변

1

WTK에서 병을 파고 나면 SMS를 보내고받는 방법을 알 수있었습니다. 애플리케이션 클래스 패스에 jar kvem.jarkenv.zip을 포함해야했습니다. Linux에서 테스트되었습니다.

public static void main(String[] args) throws IOException, PhoneNumberNotAvailableException, InterruptedException { 
    System.setProperty("kvem.home", "/home/jassuncao/usr/WTK2.5.2"); 
    WMAClient wmaClient = WMAClientFactory.newWMAClient(null, 4); 
    wmaClient.connect();  
    wmaClient.setMessageListener(new MessageListener() { 
     @Override 
     public void notifyIncomingMessage(WMAClient wmaclient) { 
      try { 
       System.out.println("Message received:"+wmaclient.receive()); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    System.out.println("This number "+wmaClient.getPhoneNumber());   
    String[] receivers = wmaClient.getKnownReceivers();   
    for (String receiver : receivers) { 
     System.out.println("Sending SMS to "+receiver);   
     Message msg = new Message("Hello world!!");   
     msg.setFromAddress("sms://"+wmaClient.getPhoneNumber()); 
     msg.setToAddress("sms://"+receiver); 
     //It seems the ports must be set AFTER the address to work 
     msg.setToPort(50000); 
     msg.setFromPort(50000); 
     wmaClient.send(msg);  
    } 
    System.in.read();  
    wmaClient.unregisterFromServer();  
} 
관련 문제