android - 短信被复制为通话(三星 galaxy S II)

标签 android android-contentprovider samsung-mobile

好的,伙计们,这是我获取短信的代码:

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) 上试过了。现在,所有 SMS 都复制在调用提供商中。

有人遇到过这个问题吗?

UPD 我发现了同样的问题 here ,继续寻找解决方案。

UDD 2 据我所知,三星现在将所有内容都存储在一个日志中,因此我将尝试找到一种对日志应用程序进行逆向工程的方法。

无论如何,仍在寻找分离短信和电话的解决方案。

最佳答案

好的,这可能是解决方案,所以我将其发布: Samsung logs provider 有很多列,其中有

logtype

据我所知,通话是 100,短信是 300,彩信是 200。

也可以检测制造商:

String man = android.os.Build.MANUFACTURER;

因此,对于三星设备,应该有单独的代码来检查日志类型

关于android - 短信被复制为通话(三星 galaxy S II),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294563/

相关文章:

android - 在 Android 中使用 Content Provider 批量删除项目

Android 内容 uri id 作为字符串

android - Samsung Galaxy 蓝牙驱动程序

android - 在三星手机上进入 PIP(画中画)模式时出现错误 "Device doesn' t 支持画中画模式

java - JBox2d - world.getBodyList() 进入无限循环

android - 如何通过解析字节模式来确定音频流类型

安卓 N : NDK Apps Linking to Platform Libraries

android - ContentProvider的OnCreate返回false会怎样?

java - 在android中使用CharacterBuffers时出现的错误

android - AT 命令和 SAMSUNG 调制解调器