Как получить доступ к sms времени, которое я получил в inbox?
Я могу прочитать сообщение из папки "Входящие" следующим образом:--
Uri uriSMSURI = Uri.parse("content://sms/inbox");
Cursor cur = getContentResolver().query(uriSMSURI, null, null, null, null);
I Дата доступа из этого: -
date = cur.getString(cur.getColumnIndexOrThrow("date"));
Но теперь проблема в том, что он дает текущее время, а не время сообщения из папки "Входящие". Извините за плохое редактирование , и любая идея будет оценена. Заранее спасибо!
3 ответа:
Используйте этот код:
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);
В таблицах Sms даты хранятся в виде целых чисел в миллисекундах. Итак, используйте
millis = cur.getLong(cur.getColumnIndexOrThrow("date"))
на курсоре.Затем используйте
DateFormat.format("EEEE, MMMM dd, yyyy h:mm:ss aa", new Date(millis))
Чтобы получить хорошую читаемую строку.
/** * Read messages of respective phone number from msg * * @param activity * @param ph_number * @return */ public static void getMessageDetails(Activity activity, String ph_number) { String forDelete_thread_id = ""; String forDelete_id = ""; String address = ph_number; Uri allMsg = Uri.parse("content://sms/"); Cursor managedCursor = activity.getContentResolver().query( allMsg, new String[] { "_id", "thread_id", "address", "date", "body", "type" }, "address=?", new String[] { address }, null); while (managedCursor.moveToNext()) { String msg_id = managedCursor.getString(0); String thread_id = managedCursor.getString(1); String address_b = managedCursor.getString(2); String date = managedCursor.getString(3); String msg_body = managedCursor.getString(4); String type = managedCursor.getString(5); } }