Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.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
Android 如何获取接收短信的时间_Android_Smsmanager - Fatal编程技术网

Android 如何获取接收短信的时间

Android 如何获取接收短信的时间,android,smsmanager,Android,Smsmanager,我通过以下代码阅读特定号码的未读短信 public void getUnreadMessage() { Cursor smsInboxCursor1 = getContentResolver().query( Uri.parse("content://sms/inbox"), new String[] {}, "read = 0 and address='" + pre_address + "'", null, nu

我通过以下代码阅读特定号码的未读短信

public void getUnreadMessage() {
        Cursor smsInboxCursor1 = getContentResolver().query(
                Uri.parse("content://sms/inbox"), new String[] {},
                "read = 0 and address='" + pre_address + "'", null, null);
        int indexBody = smsInboxCursor1.getColumnIndex("body");
        int indexAddress = smsInboxCursor1.getColumnIndex("address");
        if (indexBody < 0 || !smsInboxCursor1.moveToFirst())
            return;
    //  arrayAdapter.clear();
        do {

            String str = "SMS From: " + smsInboxCursor1.getString(indexAddress)
                    + "\n" + smsInboxCursor1.getString(indexBody) + " \n";
            fromNumber = smsInboxCursor1.getString(indexAddress);
            smsBody.add(smsInboxCursor1.getString(indexBody));
            // arrayAdapter.add(str);
            status.add(false);

        } while (smsInboxCursor1.moveToNext());
    }
public void getUnderMessage(){
游标smsInboxCursor1=getContentResolver().query(
解析content://sms/inbox“”,新字符串[]{},
“读取=0,地址='”+pre_地址+“'”,空,空);
int indexBody=smsInboxCursor1.getColumnIndex(“body”);
int indexAddress=smsInboxCursor1.getColumnIndex(“地址”);
如果(索引体<0 | |!smsInboxCursor1.moveToFirst())
返回;
//arrayAdapter.clear();
做{
String str=“SMS From:”+smsInboxCursor1.getString(indexAddress)
+“\n”+smsInboxCursor1.getString(indexBody)+”\n”;
fromNumber=smsInboxCursor1.getString(indexAddress);
添加(smsInboxCursor1.getString(indexBody));
//arrayAdapter.add(str);
status.add(false);
}while(smsInboxCursor1.moveToNext());
}
现在我想知道收到这个号码短信的时间。我该怎么做

有一个名为的列,其中包含收到消息的日期。您可以像已检索的其他字段一样直接获取:

int indexData = smsInboxCursor1.getColumnIndex("data");

...

long dateReceived = smsInboxCursor1.getLong(indexData);
因为它是一个时间戳,所以您需要转换为一个人类可读的字符串。您可以使用以下代码执行此操作:

private String getDate(long time) {
    Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(time);
    String date = DateFormat.format("dd-MM-yyyy HH:mm:ss", cal).toString();
    return date;
}