2014-01-30 1 views
0

Я получил информацию о том, как получить текст и изображение для mms, посланных по этой ссылке: How to Read MMS Data in Android?.Как получить дату mms из содержимого: // mms.

Но я не уверен, как получить дату отправки mms.

Я знаю, что мне нужно изучить содержание: // mms и не в содержании: // mms/part.

Это Mothod для извлечения текста MMS:

private String getMmsText(String id) { 
     Uri partURI = Uri.parse("content://mms/part/" + id); 
     InputStream is = null; 
     StringBuilder sb = new StringBuilder(); 
     try { 
      is = getContentResolver().openInputStream(partURI); 
      if (is != null) { 
       InputStreamReader isr = new InputStreamReader(is, "UTF-8"); 
       BufferedReader reader = new BufferedReader(isr); 
       String temp = reader.readLine(); 
       while (temp != null) { 
        sb.append(temp); 
        temp = reader.readLine(); 
       } 
      } 
     } catch (IOException e) { 
     } finally { 
      if (is != null) { 
       try { 
        is.close(); 
       } catch (IOException e) { 
       } 
      } 
     } 
     return sb.toString(); 
    } 

, а затем, в OnCreate метод, я использую этот код, чтобы получить информацию:

Cursor cursor = getContentResolver().query(uri, null, selectionPart, 
       null, null); 
     if (cursor.moveToFirst()) { 
      do { 
       String partId = cursor.getString(cursor.getColumnIndex("_id")); 
       String type = cursor.getString(cursor.getColumnIndex("ct")); 
       if ("text/plain".equals(type)) { 
        String data = cursor.getString(cursor 
          .getColumnIndex("_data")); 

        if (data != null) { 
         // implementation of this method above 
         body = getMmsText(partId); 
        } else { 
         body = cursor.getString(cursor.getColumnIndex("text")); 
        } 
       } 
      } while (cursor.moveToNext()); 
     } 

     try { 


      main.setText(body); 
      img.setImageBitmap(bitmap); 
     } catch (Exception e) { 

      e.printStackTrace(); 
     } 

Я просто хочу знать где я могу внести изменения, чтобы получить значение даты.

Некоторая информация будет действительно полезна.

ответ

3

Я не слишком знаком с MMS, но я предположил бы, что-то вроде этого, по крайней мере, вы начали

Cursor cursor = activity.getContentResolver().query(Uri.parse("content://mms"),null,null,null,date DESC); 
count = cursor.getCount(); 
if (count > 0) 
{ 
    cursor.moveToFirst(); 
    long timestamp = cursor.getLong(2); 
    Date date = new Date(timestamp); 
    String subject = cursor.getString(3); 
} 

Это совершенно непроверенные конечно, но должен направить вас в правильном направлении. Надеюсь это поможет!

Редактировать После этого немного чтения, там раньше (возможно, до сих пор есть) «ошибка» с отметкой времени в сообщениях MMS, при получении данных. Если вы закончите с глупой ценностью (например, эпохой), вам нужно будет * 1000 перед ее использованием. Только в сторону: 1.e .:

long timestamp = (cursor.getLong(2) * 1000); 
+0

Благодарим за информацию. Это было действительно полезно .. :). Код работает, но год показывается как 1970 по какой-то причине. – mike20132013

+1

Ах. См. Мое редактирование :) Просто измените на: long timestamp = (cursor.getLong (2) * 1000); - Должен разбираться :) – LokiSinclair

+0

perfect..its working .. :) – mike20132013