如何在android中计算修复日期收件箱短信

时间:2013-02-04 12:41:33

标签: android sms counter

我正在尝试开发一个短信计数器应用程序,我想要计算当前日期的所有短信。我不想计算总收件箱短信。我使用以下代码但没有得到确切的结果。它计算总收件箱短信。

TextView view = new TextView(this);

    Uri uriSMSURI = Uri.parse("content://sms/inbox");
    Cursor cur = getContentResolver().query(uriSMSURI, null, null, null,null);
    /*
    int nsm = 0;
    while(cur.moveToNext()){
    nsm+= + cur.getCount();
    }
    */
    String sms = "";

   while ( cur.moveToNext());{
     //   sms += "From :" + cur.getString(2) + " : " + cur.getString(11)+"\n";   
   //    sms += cur.getString(2); 
        sms += "Total SMS in the INBOX : "+cur.getCount();
   }
    view.setText(sms);

    setContentView(view);

我是一名新学员。提前谢谢。

2 个答案:

答案 0 :(得分:6)

如果您正在尝试计算过去24小时内收到的短信数量,您可能会做这样的事情(不确定这是否真的有效,因为我没有测试过,但您明白了):

Uri uriSMSURI = Uri.parse("content://sms/inbox");
long now = System.currentTimeMillis();
long last24 = now - 24*60*60*1000;//24h in millis
String[] selectionArgs = new String[]{Long.toString(last24);
String selection = "WHERE " + "date" + ">?";
Cursor cur = getContentResolver().query(uriSMSURI, null, selection, selectionArgs,null);

然后一个简单的cur.getCount()可以获得收到的短信数量。

答案 1 :(得分:-1)

Uri uriSMSURI = Uri.parse("content://sms/inbox");
    long now = System.currentTimeMillis();
    long last24 = now - 24*60*60*1000;//24h in millis
    String[] selectionArgs = new String[]{Long.toString(last24)};
    String selection = "date" + ">?";
    String[] projection = new String[]{"date"};
    Cursor cur = getContentResolver().query(uriSMSURI, projection, selection, selectionArgs,null);

    String sms = String.valueOf(cur.getCount());

这是Exact结果,我想要感谢给我快速回复