在没有本机消息传递应用程序的情况下发送和接收SMS

时间:2011-01-22 21:52:00

标签: android sms

我试着四处寻找这个问题的答案,我在问题的不同部分找到了点点滴滴,但我仍然无法破译它是否可能(或至少在我们的范围内)小,初学者操作)。我将解释他和我希望实现的目标,并且只是一个相当简单的回应,或者可能会有一些关于可能性的文献链接。

我不是在寻找某人必须泄漏某些代码或类似的东西,因为我意识到我的请求会有点模糊(因为我不想过多地泄露我们的应用程序的内容,我们将简单地称为Alpha),但也因为我对程序世界的了解非常少(我更多地支持设计以及除编程之外的所有其他事项)。

我们希望能够在我们正在创建的应用程序中发送和接收SMS文本消息,而无需处理本机消息传递应用程序。我们希望这样做是因为(至少对于HTC手机),没有选项可以轻松“复制”收到的单个短信。在HTC手机上,当您长按单个短信时,复制信息的功能根本就不存在(但它在三星上,我不确定摩托罗拉,所以我认为这是一个Sense UI限制)

因为我们需要一种简单的方法将收到的短信移动到我们的应用程序中,并且由于无法提供简单,直观的方式(至少不是HTC所有者),我们不得不尝试提出其他方法。这样做的方式。因此,我们想知道是否可以在我们的应用程序中创建您自己的小文本消息区域,以便只有与我们的应用程序相关的文本消息才会显示在应用程序中而不首先在本机消息传递应用程序中弹出?

或者,是否可以在长按单个文本后弹出“消息选项”,允许用户“发送到Alpha应用程序”?

同样,我知道这可能有点模糊,或者不是最容易理解的,我希望我有更多的编程知识可以用更具体的术语来表达。

我是Android开发世界的新手,我正在创建一个Android应用程序的朋友。

2 个答案:

答案 0 :(得分:3)

是的,完全有可能 - 接收只是实现一个Listener并将其添加到manifest.xml文件中,如下所示:

<receiver android:name=".MyListener">
   <intent-filter>
       <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
   </intent-filter>
</receiver>

告诉Android框架您希望能够接收和处理所有SMS消息。

这是我发现的一篇文章,讨论如何: http://www.devx.com/wireless/Article/39495/1954

答案 1 :(得分:2)

从Android 1.6开始, 传入的SMS消息广播(android.provider.Telephony.SMS_RECEIVED)作为“有序广播”传送 - 这意味着您可以告诉系统哪些组件应首先接收广播。

如果您在收听短信时定义了android:priority属性,则会在本机短信应用程序之前收到通知。

您可以根据自己的要求进行检查,然后取消广播,防止广播传播到其他应用。