0

ヘルプを得るためにこの投稿を作成しています。送信するアプリケーションを開発していますincoming text sms。私がやっているのは、フェッチincoming message body, date and timeして新しいメッセージとして送信することです。送信目的で使用してsms managerいます。multiple message body選択したメッセージを使用checkboxesおよび作成でき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();
             }
4

1 に答える 1

1

いくつかのコードはまだ友達が不足していますが、あなたが投稿したコードを修正し、既存のコードとここに投稿しなかったコードを修正できます..

最初に 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("time")) およびcursor.getColumnIndex("date")) の場合、最初に、データベースクラスに time,date という名前の2つの列を作成し、SMS の受信時にその値を挿入する必要があります。

選択したメッセージ本文を送信するコード

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();
             }

**注: データベースを変更する必要があります。そのためにテーブルを変更し、最後に「時刻」と「日付」の2つの列を追加します。

その後、メッセージを受信して​​このメ​​ッセージをデータベースに保存する、broadcastReceiver サブクラスのコードも変更する必要があります。そのクラスから、時間と日付の値をテーブルに入力する必要もあります。**

于 2014-02-25T08:07:24.793 に答える