-1

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

TextView 视图 = 新的 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);

我是一个新的学习者。提前致谢。

4

2 回答 2

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()应该让你收到短信的数量。

于 2013-02-04T13:08:03.813 回答
-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());

这是我想要的确切结果感谢您给我快速回复

于 2013-02-06T11:02:41.153 回答