android - 我是否需要在 content://sms/inbox 中手动插入新消息?
问题描述
最近开始为大学项目学习android。我创建了一个短信应用程序,它能够成为默认应用程序(虽然是简约的应用程序)。当我将其设置为默认短信应用程序时,我手机的内置应用程序停止接收新消息。
问题:
所有新消息都会自动进入
content://sms/inbox
还是我们必须手动更新?我问这个是因为我的内置短信应用程序没有反映收到的短信,而它不是默认短信应用程序。是否有必要将新消息转发到侦听收到新短信的其他应用程序?
解决方案
所有新消息都会自动进入
content://sms/inbox
还是我们必须手动更新?
不,这些邮件不会自动写入收件箱。默认应用程序负责将所有传入的 SMS 保存到 Provider。尽管默认应用程序不需要这样做,但如果它没有将它们保存在那里,那么查询提供程序以读取现有消息的其他应用程序就不会看到它们。这可以解释为什么您的内置 SMS 应用程序看不到收到的新消息,而您的是默认消息。
系统自动处理的唯一消息写入是针对非默认应用程序发送的传出 SMS。所有其他插入、更新和删除都留给默认应用程序。
是否有必要将新消息转发到侦听收到新短信的其他应用程序?
不具体,因为它是。任何有兴趣在消息到达时获取消息的非默认应用程序都应该监听SMS_RECEIVED
广播,系统将自动发送。此类应用程序可以直接访问消息,因为它们Intent
作为附加内容附加到广播。
除此之外,非默认值读取消息或收到更改通知的唯一其他(实用)方式几乎是通过提供程序,因此只要您将消息保存在那里,这些应用程序就会被覆盖,如好。
推荐阅读
- python - 基于多个字符的pandas数据框拆分列
- java - 通过 java 中的单个类文件发送 Discord webhook
- python - 将图例添加到散点图(panda 和 matplotlib)
- python - 使用大量文件时错误标记数据
- powerline - 如何在电力线 bash 设置中格式化日期和时间
- arrays - 在颤振中为表单标题和可选择项制作 JSON 数据文件
- reactjs - React Native:R 不是 react-navigation-drawer.js 中的函数
- reactjs - 使用来自前端的(发布)请求在后端触发 Django 脚本
- string - 如何获取列表
从地图 - github - 从 git repo 中提取代码,在实例组模板的启动脚本中