从Android设备单独发送短信

时间:2015-10-04 12:19:13

标签: android sqlite sms

我已经实现了一个代码,它以字符串格式从“发送短信”中获取第一个短信。

我希望从第一个开始逐个从发送的框中获取所有短信。

我想将它们保存在SQLite数据库中。

以下代码显示了Toast中第一个发送的短信,但我如何获取所有发送的短信?

public class MainActivity extends Activity {

    String address, name, date, msg, type;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Button btn =(Button)findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Uri mSmsinboxQueryUri = Uri.parse("content://sms/sent");
                Cursor cursor1 = getContentResolver().query(mSmsinboxQueryUri,
                            new String[] { "_id", "thread_id", "address", "person", "date",
                                            "body", "type" }, null, null, null);
                startManagingCursor(cursor1);
                String[] columns = new String[] { "address", "person", "date", "body","type" };
                if (cursor1.getCount() > 0) {
                    String count = Integer.toString(cursor1.getCount());
                    //Log.e("Count",count);
                    System.out.println("Count:" + count);
                    while (cursor1.moveToNext()){
                        address = cursor1.getString(cursor1.getColumnIndex(columns[0]));
                        name = cursor1.getString(cursor1.getColumnIndex(columns[1]));
                        date = cursor1.getString(cursor1.getColumnIndex(columns[2]));
                        msg = cursor1.getString(cursor1.getColumnIndex(columns[3]));
                        type = cursor1.getString(cursor1.getColumnIndex(columns[4]));
                    }
                }

                Toast.makeText(getApplicationContext(), address + "\n" + name + "\n" + date + "\n" + msg + "\n" + type, Toast.LENGTH_LONG).show();
            }
        });

    }


}

2 个答案:

答案 0 :(得分:0)

使用

cursor.moveToFirst(); 
行前

 while  (cursor1.moveToNext())

答案 1 :(得分:0)

而不是使用

if(cursor1.moveToFirst())
{
   for (int i = 0; i <cursor1.getCount(); i++) 
   {
      address = cursor1.getString(cursor1.getColumnIndex(columns[0]));
      name = cursor1.getString(cursor1.getColumnIndex(columns[1]));
      date = cursor1.getString(cursor1.getColumnIndex(columns[2]));
      msg = cursor1.getString(cursor1.getColumnIndex(columns[3]));
      type = cursor1.getString(cursor1.getColumnIndex(columns[4]));
      cursor1.moveToNext();
   }
}

并在结尾处关闭光标