【问题标题】:How to catch an incoming text message如何捕捉传入的短信
【发布时间】:2010-04-24 15:11:22
【问题描述】:

我希望能够控制传入的短信。我的应用程序仍处于“概念验证”版本,我正在努力学习 Android 编程。

首先,我的应用程序需要捕获传入的文本消息。如果消息来自已知号码,则处理它。如果没有,则发送消息,因为默认短信应用程序没有发生任何事情。

我毫不怀疑这是可以做到的,但我仍然有些担心,并且我发现在 Android 上的操作存在一些缺陷。

因此,获取传入的文本消息可能相当容易 - 除非安装了其他消息传递应用程序并且用户可能希望在其中一个上弹出普通文本消息 - 在我的应用程序具有先看看吧。

如何确保我的应用程序首先选择传入的短信?

之后,我需要将大部分文本消息发送到用户选择的任何其他文本消息应用程序,以便用户真正阅读我的应用程序不需要的消息。

由于 Android 使用的 Intent 充其量是相对的,我不知道如何强制我的应用程序查看所有传入的文本消息,然后停止它或将其发送到默认的文本消息应用程序。

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    埃斯彭,

    这个问题的答案是多部分的。先了解一下,我们公司已经解决了这个问题,但是这个解决方案暂时是专有的,所以我会尽量回答,不会引起这里或我公司的冲突。

    1) 您永远无法确保您的应用会获得第一选择。您可以做的是让您的处理“足够快”,这并不重要。

    2) 如果你强迫这个问题,意图是绝对的。我们公司使用了一个叫做意图路由的概念。这可确保将数据发送到适当的应用程序。最基本的想法是,当你收到短信时,你创建一个New Intent(不是同一个),然后直接发送给班级。这有一些特殊的考虑,但应该给你一些方向。

    不幸的是,在不违反我公司的信心或 stackoverflow 的政策的情况下,在解决方案公开(下个月内)之前,我不能再公开说。

    模糊逻辑

    【讨论】:

    • 嗨 FuzzialLogic,请在发布时给我这个代码示例,听起来真的很有趣..!这可能是我的应用程序的一个很好的进步!
    • Safari,现在其实是一个api解决方案。我们转换为 API/App 是为了做一些简洁的事情。如果您对我们正在做的事情感兴趣,您可以在 Facebook 上点赞我们或在 LinkedIn 上关注我们。该公司是 nTouch Software(在 Facebook 上它必须有一个大写字母 N)。这就是我能说的所有内容,而不会将其变成我和 StackOverflow 都不想要的广告。
    • (我只放了上面的评论,因为我发现在没有发布用户电子邮件的情况下无法发送直接消息。) :( 请随意删除评论,因为我相信它值得是:)
    • @FuzzicalLogic 我在 Facebook 上找不到你,有很多同名页面 (NTouch)
    • nTouch Software 是我的公司。事实上,自从我使用 Extended Dialog 以来,我一直对公司的 Facebook 页面相当松懈。如需联系我或我公司,可发邮件至ntouchsoftware的gmail账号。
    【解决方案2】:

    检索所有传入消息只是设置侦听器,您可以轻松做到see here

    然后,如果您处于无所事事阶段,那很好,但如果您想阻止短信进入本机消息传递应用程序,则不建议阻止用户。

    你最好等待一段时间,然后从 SMS 数据库中删除。

    【讨论】:

    • 谢谢。但我想做的是从我的应用程序向服务发送短信 - 比如说银行服务。并拦截来自同一号码的任何消息。因此,当用户单击我的应用程序中的一个按钮以获取余额时,它会向一个数字发送一条消息,而我的应用程序会拦截返回消息。因此,我的应用程序首先选择传入的消息并且它可以传递任何不是来自已知号码的消息是非常重要的。我在这里担心的是,意图不是绝对的,因此可能会使这成为不可能。
    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多