有没有办法获取Android应用程序的通话/文本统计?

时间:2012-11-18 22:45:11

标签: android

我的团队和我正在制作一个基本上是地址簿的Android应用程序。我们希望添加很酷的统计数据,例如您收到的最长文本,以及您收到/发送的所有文本以及与来电相同的文本数量。我找不到访问信息的方法。感谢

1 个答案:

答案 0 :(得分:0)

您可以在SMS / MMS ContentProvider中找到所有文本统计信息。并且所有呼叫统计信息也可以在相应的提供商中找到。 如果您希望了解实时发生的任何更新,请使用内容观察者监听相应数据库中的更新。否则,只需在需要时读取数据。

http://developer.android.com/reference/android/content/ContentProvider.html

http://developer.android.com/reference/android/database/ContentObserver.html

此信息可以帮助您入门:

ContentResolver cr = getContext().getContentResolver();
Cursor cur = null;
//This is a query for SMS database
cur = cr.query(Uri.parse("content://sms"), projection, where,values, sortOrder);

//Do whatever you want with the result 

cur.close();
// This query works with MMS data
cur = cr.query(Uri.parse("content://mms"), projection, where, values, sortOrder);

//Process MMS results

cur.close();

//Ask for Call statistics
cur = cr.query(CallLog.Calls.CONTENT_URI, projection, where,values, sortOrder);

//Process the call statistics
cur.close();

数据库包含许多可用于计算所需统计信息的各种字段。我建议首先转储数据库的内容,然后查看字段以了解给出的信息。然后,您可以开始创建复杂的SQL查询并进行必要的计算。