Java 如何获得最后14天的安卓短信
我正在尝试阅读安卓手机短信的最后14天,但是从光标上读出所有的短信似乎要花很长时间,所以我把它限制在前100条,这似乎不是按时间顺序排列的 有没有关于高效查询esms数据以便仅提取联系人和消息的想法 我的代码:Java 如何获得最后14天的安卓短信,java,android,sms,Java,Android,Sms,我正在尝试阅读安卓手机短信的最后14天,但是从光标上读出所有的短信似乎要花很长时间,所以我把它限制在前100条,这似乎不是按时间顺序排列的 有没有关于高效查询esms数据以便仅提取联系人和消息的想法 我的代码: Uri uriSMSURISent = Uri.parse("content://sms/sent"); // get the sms data for sent Cursor curSent = getContentResolver().query(uriSMSURISent, nul
Uri uriSMSURISent = Uri.parse("content://sms/sent"); // get the sms data for sent
Cursor curSent = getContentResolver().query(uriSMSURISent, null, null, null,null);
int i=0;
while (curSent.moveToNext() && i<100)
{
String from = curSent.getString(2);
if(sentHashmap.containsKey(to))
{
String cumulativeMessage = sentHashmap.get(to);
sentHashmap.put(from, cumulativeMessage+ " " +curSent.getString(12));
}
else
sentHashmap.put(from, curSent.getString(12));
i++
Uri urismurient=Uri.parse(“content://sms/sent"); // 获取要发送的sms数据
Cursor curSent=getContentResolver().query(urismurisent,null,null,null);
int i=0;
while(curSent.moveToNext()&&i我建议您使用ContentResolver查询只获取您感兴趣的记录。
您可以选择不同的列,指定where子句,甚至可以进行排序
现在您只需要使用一个好的where子句来查询它:
long date = new Date(System.currentTimeMillis() - 14L * 24 * 3600 * 1000).getTime();
Cursor curSent = getContentResolver().query(uriSMSURISent, null,"date" + ">?",new String[]{""+date},"date DESC");
谢谢。我用下面的日期代码尝试了一下,但没有得到任何回复,我的格式设置有误吗?日期日期=新日期(System.currentTimeMillis()-14L*24*3600*1000);结果:周一-五月13日22:42:31 GMT+01:00 2013获得-我需要以毫秒为单位获取日期。谢谢一位磨坊工人。
long date = new Date(System.currentTimeMillis() - 14L * 24 * 3600 * 1000).getTime();
Cursor curSent = getContentResolver().query(uriSMSURISent, null,"date" + ">?",new String[]{""+date},"date DESC");