تلقي الرسائل القصيرة المرسلة من محاكي WTK في تطبيق مخصص

StackOverflow https://stackoverflow.com/questions/1728617

سؤال

أنا أستخدم Sun WTK لتشغيل MIDELT الذي يحتاج إلى إرسال وتلقي اختياريا اختياريا. يمكن استخدام وحدة التحكم WMA لإرسال واستقبال الرسائل إلى MIDELT ولكن أود أن أفعل نفس الشيء باستخدام طلبي الخاص.

لقد قمت ببعض المستنقع، ولاحظت أن الرسائل يتم إرسالها بواسطة UDP من وحدة التحكم WMA إلى المحاكي.

هل كانت مفيدة؟

المحلول

بعد حفر داخل الجرار في WTK كنت قادرا على معرفة كيفية إرسال واستقبال الرسائل القصيرة. كان علي أن أدرج الجرار kvem.jar و kenv.zip في تطبيق classpath. اختبار تحت لينكس.

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