【发布时间】:2016-06-27 00:28:29
【问题描述】:
自三星 S7 推出以来,一些文本消息丢失并且从未显示在 content://sms 提供程序 URI 中。我注意到这在同一运营商(在本例中为 T-Mobile)上的多个三星设备(S6 和/或 S7)之间但可能不限于此。这些短信显示在默认的股票消息应用程序中,但我找不到如何访问它们。请记住,我可以通过该内容提供商收到 97% 的短信,但最后 3% 却没有。
Uri uri = Uri.parse("content://sms/");
String[] projection_sms = { "*" };
Cursor cursor = getContentResolver().query(uri, projection_sms, "", null, null);
我还查看了 SIM 卡内是否有丢失的短信,但什么也没找到:
Uri uri = Uri.parse("content://sms/icc");
我也浏览了所有的彩信,发现它们也不在里面。
<uses-permission android:name="android.permission.READ_SMS" />
我只想在这种情况下阅读短信,根据 Android 文档,您只需要上述权限即可从短信/彩信数据库中读取。我意识到在 KitKat 中进行了一项更改,允许应用替换默认的股票应用,但在这种特殊情况下,我只想阅读 SMS。
因此,如果这些 SMS 不在数据库中的正确位置并且不在 SIM 卡中,那么它们会在地球上的哪个位置(或者我应该说在 Android 中)?
【问题讨论】:
-
缺少哪些邮件?您的非默认应用程序只会收到 sent 和 inbox 消息,因此如果它是 draft、failed 等。你没有得到,这就是原因。
-
缺少的短信是收到的短信,应该在收件箱里,也可以在content://sms/里找到。这些消息在收到的默认应用程序中显示,但我无法从任何地方访问这些消息。
-
他们有没有其他共同点?就像,他们真的都老了吗?还是只是随机的?另外,您确定这些消息是通过 SMS 发送的,而不是 RCS 之类的吗?某些应用程序在显示消息时会无缝结合这些内容,但 RCS 不会存储在 SMS Provider 中。显然,T-Mobile 调用 RCS 高级消息传递,顺便说一句。
-
嗯,哇,我认为你是绝对正确的。我什至不知道 RCS。非常感谢! Google 是否允许访问 RCS 消息?还是为个别运营商专有?
-
是的,这会因运营商而异,atm。目前还没有用于 RCS 的标准 API,AFAIK,尽管它最终可能会出现在 SDK 中(如果它不在 N 中;不知道,我有点落后于前沿),因为我上次听说,谷歌一直在推动它替换短信。
标签: java android sms provider mms