我试图计算发送的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