Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得最后14天的安卓短信_Java_Android_Sms - Fatal编程技术网

Java 如何获得最后14天的安卓短信

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

我正在尝试阅读安卓手机短信的最后14天,但是从光标上读出所有的短信似乎要花很长时间,所以我把它限制在前100条,这似乎不是按时间顺序排列的

有没有关于高效查询esms数据以便仅提取联系人和消息的想法

我的代码:

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");