2012-03-22 24 views
5

Giống như ứng dụng Tin nhắn, Hoạt động đầu tiên hiển thị SMS mới nhất được nhóm theo người và số đếm.truy vấn nhóm tin nhắn SMS mới nhất theo số liên lạc

Ví dụ tôi đã trao đổi 50 văn bản với Chris, 60 với Aline, 40 với Ray ... Các màn hình ứng dụng một cái gì đó như thế này

Chris (50) Hey how are you lately ?  
Aline (60) Let's catch up  
Ray (40) Here is my number 
Ethan (1) I wrote a solution 

Tôi đang cố gắng để làm như vậy. Tôi truy vấn tất cả các tin nhắn SMS sau đó tôi sắp xếp chúng. Ít nhất là O (n) hiệu quả.

Cursor cur = this.getContentResolver().query(Uri.parse("content://sms"), null, null, null, null); 
int count = cur.getCount(); 

// iterate all the SMS 
for (int i=1 ; i<=count ; i++){ 
    // processing 
    .... 

    cur.moveToNext(); 
} 

Có cách nào để truy vấn những thông điệp mới nhất (nhận hoặc gửi không dự thảo loại) được phân nhóm theo người và nhận được số lượng tin nhắn SMS từ một người? Tôi cho rằng có nhiều truy vấn.

Trả lời

9

Tôi nghĩ rằng điều này sẽ làm những gì bạn muốn:

Cursor cur = this.getContentResolver().query(Uri.parse("content://mms-sms/conversations?simple=true"), null, null, null, "normalized_date desc"); 

Con trỏ trở lại sẽ chứa các thông báo mới nhất trong tất cả các cuộc nói chuyện và số lượng tin nhắn trong mỗi cuộc hội thoại.

+0

Nó hoạt động !! Số lượng tin nhắn là cột "message_count". Đừng quên "android.permission.READ_SMS". Bạn lấy đoạn mã đơn giản này ở đâu? –

+0

Tôi nhớ tình cờ gặp phải vấn đề tương tự khi thực hiện phân tích cú pháp SMS của riêng tôi. Đã nhanh chóng googling và tìm thấy một vài nguồn thực sự. Vui vì nó hoạt động. – gelupa

+0

Ok cảm ơn sự giúp đỡ của bạn. Tôi không googled từ khóa "trò chuyện" :) –

Các vấn đề liên quan