我試圖計算髮送的SMS消息的數量,並且當消息超過1條消息的限制時,將它們計爲2(或更多)。獲取已發送的SMS消息的數量
Uri allMessages = Uri.parse("content://sms/sent");
Cursor c = getContentResolver().query(allMessages, null, null, null, null);
int totalMessages = 0;
while (c.getPosition() < numberRows - 1)
{
c.moveToNext();
//Problem Code
String messageBody = c.getString(c.getColumnIndex("body"));
long messageLength = messageBody.length();
double numberOfMessages = messageLength/160;
double numberOfMessagesRoundedUp = Math.ceil(numberOfMessages);
//Problem Code
totalMessages = (int) (totalMessages + numberOfMessagesRoundedUp);
}
c.close();
除了上面標記的4行代碼,代碼工作正常。我試圖讀取每個文本的正文並獲取長度,然後除以160(SMS限制)並湊到最近的整數,給我使用的消息數量。該代碼給出的值太小,大約比應該少50倍。
有沒有錯誤? – jagsler 2011-12-27 13:23:02
不,它運行良好,並且我沒有試圖將更長的消息計爲2或更多。 – 2011-12-27 13:27:52
將160改爲160.0。看到我的代碼如下。 – jagsler 2011-12-27 13:48:34