我正在处理一个处理短信的应用程序。这是一个个人应用程序,我不打算发布它,但它基本上允许我通过互联网在众多设备之间共享我的短信(和电话号码)。作为第一个应用程序,它也是一个有趣的学习项目,我做了很多。
然而令人讨厌的部分是我的设备在接收消息时获得的文本消息弹出窗口。我喜欢它,当我使用该设备时,我可以随时进入选项并在我不打算使用该设备时禁用弹出窗口,但我是一个非常非常健忘的人并将其重新打开永远不会发生。然后我永远不会回复消息。
基本上我想以编程方式中断(或甚至不通知)我的文本消息的默认消息传递应用程序,但是我仍然希望它记录在我的消息传递历史记录中。所以消息不能被“丢弃”。这应该只在我的应用程序服务运行时发生。
我一直在搜索android API很长一段时间,我似乎无法弄清楚这一点,是否有可能,如果是这样,你可以将我链接到API的正确位置开始吗?
答案 0 :(得分:1)
基本上我想以编程方式中断(或甚至不通知)我的短信消息应用程序...
这是不可能的。
假设通过“中断”意味着阻止默认的SMS应用程序发出其通知,您可以使用默认应用程序执行此操作,而不是使用您无法控制的任何其他应用程序。
此外,由于默认的SMS应用程序响应SMS_DELIVER_ACTION
广播,并且它是唯一接收此广播的应用程序,因此无法“不...通知”默认应用程序传入的消息。你的应用甚至没有机会中止广播,即使有可能这样做。
(在KitKat之前的版本中,通常可以为SMS_RECEIVED_ACTION
广播注册具有高优先级的接收器,然后在本机SMS应用程序接收之前中止广播。这就是rajan ks的答案是指。)
...但我仍然希望将其记录在我的消息历史中。
默认的SMS应用程序负责将所有传入的消息写入提供者。即使您能够阻止默认应用程序接收传入消息,您的应用程序也必须自己编写消息。这也是不可能的,因为默认应用程序是唯一具有对提供程序的标准写入权限的应用程序。