从收件箱中读取短信

时间:2014-04-09 19:36:46

标签: java android

我试图从用户的收件箱中读取短信,但我只收到号码,因为cur.getString()总是向我返回NULL,索引为2后......

这是我的代码:

        TextView view = (TextView)findViewById(R.id.textView1);

      Uri uriSMSURI = Uri.parse("content://sms/inbox");
      Cursor cur = getContentResolver().query(uriSMSURI, null, null, null,null);
      String sms = "";
      while (cur.moveToNext()) 
      {
          sms += "From :" + cur.getString(2) + " : " + cur.getString(11)+"\n";
          Log.i("MyApp", "A " + cur.getString(2) + " " + cur.getString(3));
      }

      view.setText(sms);

我已经检查了,cur.getString(3)及以上,总是向我返回null ...

我的错误是什么?

谢谢!

编辑: 感谢simas,我发现包含消息数据的body字段是Cursor(cur)中的字段编号12,而不是11.因此将其从11更改为12固定它。 谢谢simas!

1 个答案:

答案 0 :(得分:1)

试试这个:

cur.moveToFirst();
if (cur != null) {
    do {    
       sms += "From :" + cur.getString(2) + " : " + cur.getString(11)+"\n";
           Log.i("MyApp", "A " + cur.getString(2) + " " + cur.getString(3));        
    }while(cur.moveToNext());
}