2013-08-05 47 views
1

我在我的應用程序中設置了一個MMS內容觀察器,每當有新的MMS消息到達時,它都會被竊聽。然後它查詢「」content:// mms/inbox「並檢索任何未讀消息。問題在於MMS到達部分(文本,並且任何音頻/圖片/視頻附件單獨進入)或者至少內容觀察者獲取因此,當第一部分進入時,我的應用程序會檢測到它,但除了主題外沒有其他任何內容,幾秒鐘後,下一部分進入,我的應用程序將它添加到第一個,所以,如果有3個或更多的零件,這將成爲一個麻煩,因爲用戶永遠不知道是否會有更多的零件進來在Android中,只有在收到第一部分後,才能在MMS消息中找到部分的數量?

所以,我想等待所有部分進入,然後通知用戶有一個新的MMS並將其顯示給他們。但是,我沒有看到內容提供商中的任何內容提供者會說明總共有很多部分將會通過。有一些我是我的或者以其他方式確定總共有多少個零件? (不只是其上的隨機間隔檢查,如果另一部分排在while循環)

回答

0

你想要做的是爲您在裏面的onChange的content://mms/inbox URI的最後一個項目的_id

在查詢content://mms/inbox後,您需要存儲以前的_id並將其與光標的最後一項(cursor.moveToLast())的_id進行比較。如果_id相同,則可以選擇忽略/放棄先前的消息,而是存儲此消息。

您可以保存最後一條消息的ID並將其與curonChange返回的消息的ID進行比較。如果id相同,你可以簡單地忽略該消息。

// might contain mistakes, but you'll get the idea: 
protected void querySMS() { 
    Cursor cur = getContentResolver().query(u, null, null, null, null); 
    cur.moveToNext(); 
    if (lastId == cur.getLong(cur.getColumnIndex("_id"))) 
     return; 
    lastId = cur.getLong(cur.getColumnIndex("_id")); 
    ... //continue as it was 
} 
+0

不具有任何與我的問題 - 我想知道有多少份剛剛起步的第一部分(其餘進來之前)是否有 – user496854

+0

據我所知,這將不可能。 – anon

+0

好的。我認爲在某個領域有一些領域會說明將會有多少部分 – user496854

相關問題