【发布时间】:2014-03-10 20:50:58
【问题描述】:
我有一个SmsReceiver,我想在设备上测试它的真实性,但是我不愿意向我的设备发送一堆真实的短信来堆积我的电话费;-)
所以我认为我必须能够使用动作RECEIVED_SMS、短信数据和发送短信所需的所有其他内容来启动intent。在谷歌上快速浏览后,我最终来到了这里:http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your-app。
我从这篇文章中汲取了一些想法,并制作了我的杀手级 android 应用程序,用于在设备上创建和“发送”短信以进行测试,我必须说它就像一个魅力,除了我的接收器 onReceive 没有被调用,发送的短信直接进入收件箱。我知道我的接收器可以工作,如果我向我的设备发送一条真实的短信,它会触发,如果我从 DDMS 向模拟器发送一条短信,它也会触发,所以应该没问题。
那么有没有我想念的permissions、一些Intent.putExtras 或其他东西?任何提示都非常有帮助,如果能够让它发挥作用,它将在测试和开发我的应用程序时帮助我很多。
清单中的我的接收器:
<receiver android:name=".SmsReceiver">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
清单中的权限(接收应用程序):
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
清单中的权限(发送应用程序):
<uses-permission android:name="android.permission.BROADCAST_SMS"/>
还应该提到 LogCat 或控制台中没有显示任何错误。
【问题讨论】:
-
不,我正在使用 Jelly Bean(想想 API lvl.16),无论如何,谢谢。如果我能以这种方式“真正地”测试我的接收器,那就太好了
-
谢谢,非常感谢!当它“应该工作”但没有工作时,这很烦人;-)
-
你解决过这个问题吗?
标签: android android-intent sms broadcastreceiver