我的一些用户报告说,在他们的三星设备(gt-n7000&sgh-i777)上,我在应用程序中对CallLog.Calls的查询也会显示文本消息。
我已经创建了一个他们的CallLog
ContentProvider
转储文件,它似乎有android api中没有提到的额外字段,并且在我们的任何测试设备上都没有返回。
具体地说,在转储文件中,有一个名为logtype
的字段,对于调用,它似乎等于100,对于文本消息,它等于300。
在联机搜索此字段后,我没有找到此字段值的任何官方文档,但我发现此字段的许多其他可能值主要是通过崩溃堆栈跟踪,这些跟踪显示了ContentProvider
的下划线查询:
logtype=300或logtype=200
logtype=100或logtype=500或logtype=800或logtype=900或
LogType=1000
所以我假设300/200是用来发短信的,100/500/800/900/1000是用来打电话的,但是我不确定,因为我还没有看到500/800/900/1000在报告用户的设备上被使用。
有人能解释一下logtype的可能值及其含义吗?
最佳答案
您好,如果您检查calllog.calls列,您将找到MessageID字段,该字段表示这是三星手机的消息。
因此,如果您只想获得没有消息的通话列表,只需执行以下操作:
int messageidIndex=cursor.getColumnIndex(“消息ID”);
while(cursor.movetonext())
{
if(messageIdIndex>=0)
messageID=cursor.getLong(messageIdIndex);
if(messageID<=0)
{
//do whatever you need with calls log data
}
}
cursor.close();