好的,伙计们,这是我获取短信的代码:
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
我发现了相同的问题here,请继续寻找解决方案。
根据我现在所知道的UDD 2,三星现在将所有内容存储在一个日志中,因此我将尝试找到一种对日志应用程序进行反向工程的方法。
无论如何,仍在寻找解决方案以分隔短信和电话。
最佳答案
好的,这可能是解决方案,因此我将其发布:
三星日志提供商有很多专栏,其中有
logtype
据我所知,电话是100,短信是300,彩信是200。
也可以检测制造商:
字符串man = android.os.Build.MANUFACTURER;
因此,对于三星设备,应该有单独的代码来检查日志类型。
关于android - SMS被复制为调用(三星银河S II),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11294563/