如何访问我在收件箱中收到的短信时间?

Dee*_*ary 7 time sms android date android-contentresolver

我可以从收件箱中读取消息: -

 Uri uriSMSURI = Uri.parse("content://sms/inbox");

 Cursor cur = getContentResolver().query(uriSMSURI, null, null, null, null);
Run Code Online (Sandbox Code Playgroud)

我从这里访问日期: -

   date = cur.getString(cur.getColumnIndexOrThrow("date"));
Run Code Online (Sandbox Code Playgroud)

但现在问题是它从收件箱中提供当前时间而不是消息时间.对不起编辑错误,任何想法将不胜感激.提前致谢!

Sun*_*hra 12

使用此代码:

ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query( Uri.parse( "content://sms/inbox" ), null, null, null, null);
cursor.moveToFirst();
String date =  cursor.getString(cursor.getColumnIndex("date"));
Long timestamp = Long.parseLong(date);    
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timestamp);
Date finaldate = calendar.getTime();
String smsDate = finaldate.toString();
Log.d(Home.class.getName(), smsDate);
Run Code Online (Sandbox Code Playgroud)


S.D*_*.D. 7

在Sms表中,日期以毫秒为单位存储为INTEGER.所以,使用

millis = cur.getLong(cur.getColumnIndexOrThrow("date")) 在光标上.

然后,使用

DateFormat.format("EEEE, MMMM dd, yyyy h:mm:ss aa", new Date(millis))

得到一个很好的可读字符串.