문제

SUN WTK를 사용하여 SMS를 보내고 선택적으로받는 데 필요한 미드 렛을 실행합니다. WMA 콘솔은 미드 렛에 메시지를 보내고받는 데 사용될 수 있지만 나 자신의 응용 프로그램을 사용하여 동일한 작업을 수행하고 싶습니다.

스니핑을 수행했으며 UDP가 WMA 콘솔에서 에뮬레이터로 전송되는 것을 알았습니다.

도움이 되었습니까?

해결책

WTK의 항아리 내부를 파고 난 후 SMS를 보내고받는 방법을 알아낼 수있었습니다. 나는 항아리를 포함시켜야했다 kvem.jar 그리고 kenv.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();       
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top