2014-02-25 51 views
0

我在找這個帖子來尋求幫助。我正在開發一個應用程序,發送incoming text sms。我在做什麼取incoming message body, date and time並將其作爲新消息發送。爲發送目的我使用sms manager。 我可以使用checkboxes獲得multiple message body並創建所選消息的list。但問題在於獲取日期和時間。獲取文本短信詳細信息時出錯?

代碼在主活動:

String body=""; 
ArrayAdapter<SMSListModel> adapter; 
List<SMSListModel> list = new ArrayList<SMSListModel>(); 

代碼選擇的消息的數組列表:

private List<SMSListModel> getModel() 
{ 
    if(cursor.getCount()>0) 
    { 
     for(int i=0;i<cursor.getCount();i++) 
     { 
      if(cursor.moveToPosition(i)) 
      { 
       list.add(new SMSListModel(cursor.getString(cursor.getColumnIndex("address")),cursor.getString(cursor.getColumnIndex("body")))); 
      } 
     } 
    } 
    return list; 
} 

代碼SMSListModel

public SMSListModel(String address, String body) { 
    this.address = address; 
    this.body = body; 
} 
public boolean isSelected() { 
    return selected; 
} 

public void setSelected(boolean selected) { 
    this.selected = selected; 
} 

代碼以發送所選的消息體:

if(list.size()>0){ 
     for(int i=0;i<list.size();i++) 
     { 
      if(list.get(i).isSelected()) 
      { 
      if(body.equals("")) 
        body =list.get(i).getBody(); 

       else 
       body =list.get(i).getBody(); 
      try 
      { 
       String mbody = "from"+ "dd/mm/yy" +"hh:mm"+body; 
       SmsManager smsManager = SmsManager.getDefault(); 
       smsManager.sendTextMessage(phoneNo, null, mbody, null, null); 
      }       
      catch (Exception e) 
      { 
       //Error Occurred if No Messages Selected 
        e.printStackTrace(); 
      } 
+0

您的代碼段似乎是不完整的 – donfuxx

+0

@donfuxx是的,它需要有代碼有關的日期和時間,我需要幫助除了 –

+0

@joaquin從編輯你可以幫我解決我所問的問題 –

回答

1

幾個代碼仍然zmissing的朋友,但我們也可以解決你的代碼後,給你方向存在一個和你我以前不張貼在這裏..

首先修改代碼SMSListModel

public class SMSListModel { 

    String date; 
    String time; 
    String address; 
    String body; 

    public SMSListModel(String address, String body, String time, String date) { 
     this.address = address; 
     this.body = body; 
     this.time = time; 
     this.date = date; 
    } 

    public String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public String getDate() { 
     return date; 
    } 

    public void setDate(String date) { 
     this.date = date; 
    } 

    public String getTime() { 
     return time; 
    } 

    public void setTime(String time) { 
     this.time = time; 
    } 

    public String getBody() { 
     return body; 
    } 

    public void setBody(String body) { 
     this.body = body; 
    } 
    public boolean isSelected() { 
      return selected; 
    } 
    public void setSelected(boolean selected) { 
    this.selected = selected; 
    } 

} 

private List<SMSListModel> getModel() 
{ 
    if(cursor.getCount()>0) 
    { 
     for(int i=0;i<cursor.getCount();i++) 
     { 
      if(cursor.moveToPosition(i)) 
      { 
       list.add(new SMSListModel(cursor.getString(cursor.getColumnIndex("address")),cursor.getString(cursor.getColumnIndex("body"))),cursor.getColumnIndex("time")) , cursor.getColumnIndex("date"))); 
      } 
     } 
    } 
    return list; 
} 

注:對於cursor.getColumnIndex( 「時間」))和cursor.getColumnIndex( 「日期」))冷杉所選消息的數組列表

變化更新代碼你需要在數據庫類中創建兩個名稱爲time,date的數據列,並在短信接收時爲其添加值。

的代碼,將選定的消息體

if(list.size()>0){ 
     for(int i=0;i<list.size();i++) 
     { 
      if(list.get(i).isSelected()) 
      { 
      if(body.equals("")) 
        body =list.get(i).getBody(); 
        date =list.get(i).getDate(); 
        time =list.get(i).getTime(); 

       else 
       body =list.get(i).getBody(); 
       date =list.get(i).getDate(); 
       time =list.get(i).getTime(); 
      try 
      { 
       String mbody = "from"+ date + time +body; 
       SmsManager smsManager = SmsManager.getDefault(); 
       smsManager.sendTextMessage(phoneNo, null, mbody, null, null); 
      }       
      catch (Exception e) 
      { 
       //Error Occurred if No Messages Selected 
        e.printStackTrace(); 
      } 

**注:您需要修改你的數據庫。對於該修改表,並在「時間」和「日期」末尾添加兩列。

之後,您還需要更改您的broadcastReceiver子類的接收消息並將此消息存儲到數據庫中的代碼。從類,你還需要輸入日期和時間價值,你的表。**

+0

但我怎麼能用這個選擇多個郵件 –

+0

你可以請你在這裏發佈你的代碼。而當你處理短信的身體和保持列表,還維護日期和時間。我不能給你完美的代碼,因爲你沒有發佈整個代碼。所以請如果你可以然後發佈 – 2014-02-25 08:21:37

+0

檢查我的編輯通過我維護選擇的消息列表,通過我選擇後,我要取消msg正文發送 –