Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Reply
Highlighted
Regular Contributor
Posts: 52
Registered: ‎02-26-2013
My Device: Curve 9650,Bold 9900
My Carrier: Airtel

sendMessage(Message message) of sendListener interface invokes multiple times..?

I use send listener interface in my app then it provide a method sendMessage() as i want, then i register the listener.
In sendMessage()  method i create dailogbox that ask me to schedule or send message . this work fine in case of single message but when i add a message to multiple addresses then this dialog box or can say this method(sendMessage()) multiple time according to number of address.
i wants when i create a message for multiple recepients then it invokes onlu one time and send to all.

my code is here--
.................
 public boolean sendMessage(Message message)
    {
        
         String month ;
         String date1 ;
         String hour ;
         String min1 ;
         String sec ;
         String getAMPM;
        String address = null;
        String msg = null;
        String hh_Year;
        int counter=0;
        msgDirection = "Outgoing";
    
    
        SMS.addSendListener(this);
        
        int i=Dialog.ask("SMS SCHEDULAR", new String[] {"SCHEDULE", "SEND"}, new int[] {1, 2}, 1);
              if (i==1)
               {
                          SMS.addSendListener(this);           
                    if(message instanceof TextMessage)
                    {
                        TextMessage tm = (TextMessage)message;
                        msg = tm.getPayloadText();
                        address = tm.getAddress();
                        String reverse = (new StringBuffer(address)).reverse().toString();
                        findNameString(reverse.substring(0, 8));
                        address = address.substring(6);
                        String date11 = (new SimpleDateFormat("dd MMM yyyy HH:mm:ss")).format(new Date(System.currentTimeMillis()));
                        String newyear = new String(date11.substring(7,11));
                       
                        createFile(msgDirection, address, date11, msg);
                        nameString = " ";
                        isFind = false;
                        
                           String datetime= showdatetimepicker();
                            
                         month = new String (datetime.substring(4,7));
                         date1 = new String(datetime.substring(8,10));
                         hour = new String(datetime.substring(11,13));
                         min1 = new String(datetime.substring(14,16));
                         sec = new String(datetime.substring(17,19));
                        
                         int index_len = datetime.length();
                         int len_minus= index_len-4;
                         hh_Year = new String (datetime.substring(len_minus,index_len));
                        
                       
                        String year = new String (datetime.substring(24,28));
                        
                        String timeFormat = (new SimpleDateFormat("HH:mm:ss aa")).format(new Date(System.currentTimeMillis()));

                         getAMPM = new String (timeFormat.substring(9,11));
                            
                        
                        int currentYear = Integer.parseInt(newyear);

                        int selectYear = Integer.parseInt(hh_Year);
                        if(selectYear <currentYear)
                        {
                            Dialog.alert("Oops ! You Choose previous year Change it and compose it again..!");
                            showdatetimepicker();
                            
                        }
                        else
                        {
                            
                            
                        try
                          {
                            
                            uri = URI.create("file:///SDCard/BlackBerry/documents/MsgScheduleDB.db");
                            sqliteDB = DatabaseFactory.open(uri);
                        
                            
                            
                            Statement st1 = sqliteDB.createStatement("INSERT INTO scheduler(id,schedule_Date,schedule_Month,schedule_Hour,tt,schedule_Minute,schedule_Year,Recepient,Message) VALUES (NULL, '"+date1+"' , '"+month+"' , '"+hour+"' ,'"+getAMPM+"', '"+min1+"' ,  '"+hh_Year+"' , '"+address+"' , '"+msg+"')");
                                
                            
                            st1.prepare();
                            st1.execute();
                            st1.close();
                            
                            sqliteDB.close();
                          }
                     
                        catch (DatabasePathException e1)
                          {
                              // TODO Auto-generated catch block
                              e1.printStackTrace();
                              
                          }
                        catch (IllegalArgumentException e1)
                          {
                              // TODO Auto-generated catch block

                            
                              e1.printStackTrace();
                          }
                          catch (MalformedURIException e1)
                          {
                              // TODO Auto-generated catch block

                              e1.printStackTrace();
                          }
                          catch (DatabaseException e)
                          {
                            // TODO Auto-generated catch block

                            e.printStackTrace();
                        }
                    }
                    }   
                    
               }  
               else if(i==2)
               {
                   if(message instanceof TextMessage)
                    {
                    
                        TextMessage tm = (TextMessage)message;
                        msg = tm.getPayloadText();
                        address = tm.getAddress();
                        String reverse = (new StringBuffer(address)).reverse().toString();
                        findNameString(reverse.substring(0, 8));
                        address = address.substring(6);
                        String date11 = (new SimpleDateFormat("dd MMM yyyy HH:mm:ss")).format(new Date(System.currentTimeMillis()));
                        nameString = " ";
                        isFind = false;
                        
                        ////
                        DatagramConnection _dc = null;
                        String _openString = "sms://";
                        try
                        {
                            _dc = (DatagramConnection)Connector.open(_openString);
                            byte[] data = msg.getBytes();
                            Datagram d = _dc.newDatagram(_dc.getMaximumLength());
                            
                            d.setAddress("//" + address);
                            Create_File.createFile("gone", "file:///store/home/user/videos/SMS1.txt");
                            _dc.send(d);
                            
                            
                        }
                        catch ( IOException e)
                        {
                    
                        }
           }
               else
               {
                   
               }
      
       
        return false;
    }

..............
Thanks in advance.