我尝试过使用发送数据消息() of android.telephony.SmsManager在我能遇到的几乎所有样本的帮助下..但没有成功..
[如果您想查看代码,只需检查 mobiForge 上的“发送短信 android”链接,我猜它是最受欢迎的链接(也是我使用过的链接)。]
This是参考这个问题的例子之一。
当我使用如下示例中所示的标准接收器时,我的广播接收器确实被激活,并且我能够看到包含我的消息的 Toast,从而证明我的接收器已成功运行。 [顺便说一句,我打电话给SmsManager.sendTextMessage()它运行成功,所以没有问题]。
<receiver android:name=".SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
但是,当我使用以下接收器时,我无法获取 Toast,这意味着我的接收器显然是not被激活,因此没有 Toast。
<receiver android:name=".SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<data android:port="8901"/>
<data android:scheme="sms"/>
</intent-filter>
</receiver>
我的问题是Why?如果你们中的一些人认为我的 sendDataMessage() 中的端口号不正确,那么我向您保证它是 8901,这是一个short value.
因此,我想请求任何有解决方案的人解释该解决方案或提供一个工作示例。
感谢任何可以提前提供帮助的人!
此致,
西丹特
好吧,我似乎已经发现了我的代码中的问题。
解决方法是更改安卓:名称上面显示的接收器中的值来自android.provider.Telephony.SMS_RECEIVED to android.intent.action.DATA_SMS_RECEIVED
所以新的接收器将如下所示:
<receiver android:name=".SMSReceiver">
<intent-filter>
<action android:name="android.intent.action.DATA_SMS_RECEIVED" />
<data android:port="8901"/>
<data android:scheme="sms"/>
</intent-filter>
</receiver>
谢谢KRVarma短信演示在理解代码后,这提供了一些非常有用的见解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)