我是否需要在 content://sms/inbox 中手动插入新消息?

Do I need to manually insert new messages in content://sms/inbox?

最近开始学习 android 大学项目。我创建了一个 SMS 应用程序,它可以作为默认应用程序(虽然是简约应用程序)。当我将它设置为默认短信应用程序时,我的 phone 的内置应用程序停止接收新消息。

问题:

  1. 所有新消息都会自动进入 content://sms/inbox 还是我们必须手动更新?我问这个是因为我的内置短信应用程序没有反映收到的短信,而它不是默认的短信应用程序。

  2. 是否需要将新消息转发到其他监听收到的新短信的应用程序?

Do all new messages automatically go in content://sms/inbox or do we have to update it manually ?

不,这些邮件不会自动写入收件箱。默认应用程序负责将所有传入的 SMS 保存到提供商。虽然没有要求默认应用程序这样做,但如果它不将它们保存在那里,那么查询提供者以读取现有消息的其他应用程序将不会看到它们。这可以解释为什么您的内置 SMS 应用程序看不到收到的新消息,而您的应用程序是默认的。

系统自动处理的唯一消息写入是针对非默认应用程序发送的传出短信。所有其他插入、更新和删除都留给默认应用程序。


Is it necessary to forward new messages to other apps listening for new SMS received?

不具体,因为它是。任何有兴趣在消息到达时获取消息的非默认应用程序都应该监听 SMS_RECEIVED 广播,系统会自动发送。此类应用程序可以直接访问消息,因为它们作为附加内容附加到广播 Intent

除此之外,非默认用户阅读消息或收到更改通知的唯一(实用)方式几乎就是通过提供者,因此只要您将消息保存在那里,例如应用程序也包括在内。