簡體   English   中英

Android Marshmallow 上的內容提供商結果中缺少 SMS

[英]SMS missing from content provider results on Android Marshmallow

自從三星 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" />

在這種情況下,我只想讀取 SMS,根據 Android 文檔,您只需要上述權限即可從 SMS/MMS 數據庫讀取。 我意識到在 KitKat 中有一個更改,允許應用程序替換默認的股票應用程序,但在這種特殊情況下,我只想閱讀短信。

因此,如果這些 SMS 不在數據庫中的正確位置並且不在 SIM 卡中,那么它們到底會在哪里(或者我應該說在 Android 中)?

似乎丟失的消息實際上不是 SMS,而是RCS消息。 這些不存儲在 SMS Provider 中,因此不會從任何查詢中返回給它,盡管支持 RCS 的設備上的消息應用程序可能會無縫地將它們全部顯示在一起。 這將解釋為什么您的查詢結果似乎不完整。

RCS(富通信服務)基本上是增強的 SMS/MMS,除了常規的文本消息傳遞之外,還提供諸如實時一對一和群聊、視頻通話、內容共享等功能。 目前,Android 中沒有為此提供標准 API,但據報道 Google 正在采用它作為 SMS/MMS 的最終替代品。 然而,我找不到關於如何集成或部署的官方消息。

並非每個運營商都提供 RCS,而那些確實擁有專用的專有應用程序和 API 來處理它的運營商。 當然,這些對於每個運營商/制造商來說都是不同的,甚至品牌也有很大差異。 大多數人稱它為joyn ,而T-Mobile 將其命名Advanced Messaging 隨着 RCS 變得越來越普遍,它應該變得更加標准化,但目前在您的應用程序中支持 RCS 需要專門的組件和設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM