2010-01-01 10 views
8

W mojej aplikacji muszę wysłać zapytanie zarówno do wiadomości SMS, jak i do dziennika MMS, aby uzyskać historię wszystkich wiadomości przychodzących i wychodzących. Ten kod pracował cudownie SMS:Jak wysłać zapytanie do loga MMS w Androidzie

Cursor c = cr.query(Uri.parse("content://sms"), null, null, null, null); 

Ale gdy próbuję następujące uzyskać zupełnie inne wyniki:

Cursor c = cr.query(Uri.parse("content://mms"), null, null, null, null); 

Zapytanie SMS zwraca dane, które zawiera adres wiadomość (numer telefonu), kontakt nazwa, temat wiadomości, treść wiadomości, itp. To samo zapytanie dla MMS zwraca grupę zer lub pól wartości liczbowych, których nie mogę w żaden sposób zrozumieć. Naprawdę potrzebuję listy wszystkich wiadomości MMS aktualnie w telefonie z numerem telefonu lub identyfikatorem kontaktu skojarzonym z nim, a jeśli wiadomość była wiadomością przychodzącą lub wychodzącą. W wynikach zapytania SMS mogę uzyskać numer telefonu z pola address oraz typ przychodzący/wychodzący z pola type, ale żaden z nich nie istnieje, gdy wyszukuję wiadomości MMS.

Czy istnieje inna treść URI, którą muszę wyszukać w przypadku tego rodzaju danych MMS? Każda pomoc będzie bardzo ceniona.

Edycja: aby wyjaśnić, mam całkowitą świadomość, że jest to nieobsługiwany dostawca treści. Jednakże, ponieważ nie ma obsługiwanego sposobu robienia tego, jestem w pełni skłonny przetestować i wspierać to na podstawie telefonu/wersji systemu operacyjnego. Aby utrzymywać dyskusję na bieżąco, powiedzmy, że to pytanie dotyczy Androida 1.6 na HTC Dream (G1) lub HTC Magic (MyTouch). W jaki sposób wykonasz to zadanie w tej konkretnej wersji telefonu i systemu operacyjnego? Lub jeśli nie jest to możliwe, ale jest możliwe na Androidzie 2.0 w Motorola Droid, to uważam, że informacje te są również bardzo pomocne. Ale niezależnie od tego, trzymajmy się dyskusji o tym, jak wykonać to zadanie w obsługiwany lub nieobsługiwany sposób i nie pozwólmy mu przejść do dyskusji na temat tego, jak powinniśmy wszyscy trzymać się z dala od rzeczy, które nie są obsługiwane przez API, co jest czymś, znajdź grupy dyskusyjne z Androidem, które mają być podziurawione, a które według mnie zapewniają niewiele pomocy. Jeśli używam nieobsługiwanej metody, to dobrze, pokaż mi obsługiwaną metodę wykonania tego zadania. Jeśli nie ma obsługiwanej metody, to dlaczego obsługa interfejsu API pozwala mi poprosić o zezwolenie na odczyt SMS-a przez android.permission.READ_SMS?

+2

Należy pamiętać, że żadne z nich nie są obsługiwane, a aplikacja może zostać uszkodzona na różnych urządzeniach lub w przyszłych wersjach Androida. Dostawca treści SMS nie jest częścią pakietu Android SDK, więc producenci urządzeń mogą go usunąć, poprawić lub w inny sposób zepsuć, a podstawowy zespół Androida może zrobić to samo. – CommonsWare

+0

Całkowicie to rozumiem. Jeśli masz jakiś oficjalnie obsługiwany sposób wysyłania zapytań do dziennika SMS, z chęcią się do niego przeniesię. W międzyczasie próbuję pracować z tym, co jest dla mnie dostępne. –

+0

Zobacz także: http://stackoverflow.com/questions/2591530/contentobserver-on-content-sms-in-1-6 –

Odpowiedz

5

Oto treść uris, z których korzystałem w przeszłości. Będziesz musiał bawić się wartościami, które otrzymujesz, a to jest daleko od uzyskania części MMS-a, ale mam nadzieję, że to pomoże.

// root URI for MMS messages 
static final String MMS_CONTENT_URI = "content://mms"; 

// root URI for MMS and SMS threads 
public static final String MMS_SMS_CONTENT_URI = "content://mms-sms"; 

// URI of MMS inbox 
public static final String RECEIVED_MMS_CONTENT_URI = MMS_CONTENT_URI + "/inbox"; 

// URI where sent MMSes are stored 
public static final String SENT_MMS_CONTENT_URI = MMS_CONTENT_URI + "/sent"; 

// URI where sent MMSes are stored 
public static final String MMS_PART_URI = MMS_CONTENT_URI + "/part"; 

// URI for incoming SMSes (also triggers on MMSes) 
public static final String SMS_INBOX_URI = "content://sms/inbox"; 
+0

Czekaj, jak powiedziałeś, jaka była różnica między "SENT_MMS_CONTENT_URI" a "MMS_PART_URI"? –

Powiązane problemy