好的,伙计们,这是我获取短信的代码:
Cursor cursor = getContentResolver().query(Uri.parse(uri),
null, CallLog.Calls.DATE + " > " + lastSmsTime, null,
CallLog.Calls.DATE + " ASC");
类型是:
"content://sms/inbox"
"content://sms/sent"
对于电话:
String[] projection = new String[] { CallLog.Calls.NUMBER,
CallLog.Calls.TYPE, CallLog.Calls.DURATION, CallLog.Calls.DATE };
Cursor managedCursor = getContentResolver().query(
CallLog.Calls.CONTENT_URI, projection,
CallLog.Calls.DATE + " > " + lastCallTime, null,
CallLog.Calls.DATE + " ASC");
首先,我知道这是未记录的提供程序(如您所见,我使用不同的列常量)。
有趣的是,这在几个 2.3.x 设备上运行良好。但现在我在 Galaxy S II(ICS 4.0.3)上尝试了这个。现在所有短信都在呼叫提供商中重复。
有没有人遇到过这个问题?
UPD 我在这里发现了同样的问题,继续寻找解决方案。
UDD 2 据我所知,三星现在将所有内容都存储在一个日志中,因此我将尝试找到一种方法来对日志应用程序进行逆向工程。
无论如何,仍在寻找将短信和电话分开的解决方案。