我正在尝试开发一个短信计数器应用程序,我想要计算当前日期的所有短信。我不想计算总收件箱短信。我使用以下代码但没有得到确切的结果。它计算总收件箱短信。
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);
我是一名新学员。提前谢谢。
答案 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结果,我想要感谢给我快速回复