我使用SMSManager发送消息,我可以发送消息,但我想将其保存在消息对话中(设备中的默认消息应用程序)?
我做的是
ContentValues values = new ContentValues();
values.put("address", "123456789");
values.put("body", "foo bar");
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
我可以将其添加到收件箱中但
CommansWare评论来自here,
SMS内容提供商不是Android SDK的一部分。您的代码将在使用自己的SMS客户端替换SMS客户端的设备上中断。您的代码可能会在Android的未来版本中中断
我没有最新版本的设备测试,所有Android版本的解决方案是什么?
答案 0 :(得分:1)
内容uri不是Android sdk的一部分。虽然我没有看到任何设备使用替代uri用于短信提供商,但它可能是一个。我认为谷歌将来很可能会将这个uri字符串更改为另一个字符串。但供应商也可以修改它。所以一般来说,Android的所有版本都没有银弹。
正如PLB所说,您可以为您的应用程序添加一些更新和错误报告功能。当设备更新到具有不同提供商的版本时,请通知用户有关它的信息,如果您创建处理更改的新应用程序,请让客户下载一个。如果您的代码无法读取/写入当前的uri。向您报告有关设备的一些信息。所以你将能够解决它。
我首先想到的是,您可以自动查找com.android.providers.telephony.SmsProvider的字节码(dex字节码)。但是,这也不是Android sdk的一部分。