android - "Real"短信接收测试

标签 android android-intent sms broadcastreceiver

我有一个 SmsReceiver,我想在设备上对其进行真实测试,但是我不愿意向我的设备发送一堆真实的短信,这会堆积我的电话账单;- )

所以我认为我必须能够通过操作RECEIVED_SMS、短信数据和发送短信所需的所有其他内容来启动intent。在谷歌上快速浏览后,我最终来到这里:http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your-app . 我从这篇文章中汲取了一些想法,并制作了我的 killer 级 android 应用程序,用于在设备上创建和“发送”短信以进行测试,我必须说它的效果非常好,除了我的接收器 onReceive未被调用,发送的短信直接进入收件箱。我知道我的接收器工作正常,如果我向我的设备发送一条真实的短信它会触发,如果我从 DDMS 向模拟器发送一条短信它也会触发,所以应该没问题。

那么是否有任何权限、一些Intent.putExtras 或其他我想念的东西?任何提示都非常有用,如果可以使它起作用,它将对我测试和开发我的应用程序有很大帮助。

list 中的我的接收器:

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

list 中的权限(接收应用程序):

<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" />  

list 中的权限(发送应用程序):

<uses-permission android:name="android.permission.BROADCAST_SMS"/>

还应提及 LogCat 或控制台中未显示任何错误。

最佳答案

这是我的接收器在 list 中的样子:

<receiver android:name="com.mike.broadcastexample.BroadcastReceiverClass" android:exported="true" > 
            <intent-filter android:priority="999" > 
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter> 
        </receiver>

我唯一要做的额外工作是将 android:priority 设置为 999 并添加了 android:exported="true"

这些是我对应用程序使用的唯一权限:

    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />

我的应用程序也遇到了同样的问题,它是搭载 Android 4.3 的 HTC ONE,但在对该接收器进行一些更改后,它的工作绝对完美。

你也可以试试看。

关于android - "Real"短信接收测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22311033/

相关文章:

Android 从我的应用程序中删除短信通知

android - 在 CDMA 手机上的 Android 中发送数据短信

android - 如何获取草稿短信的地址

android - Spinner 的下拉菜单无法正常工作

java - 仅在 fragment 1 完成加载后调用 fragment 2 并将数据传递给它

android - 想要在 Android 文本字段中显示上次使用的值

java - 如何保持列表项和数据库行之间的连接?

android - 我怎样才能找到我的日历 Intent 的结果?

java - 如何在 Android 中以编程方式调用电话?

java - 如何阻止我的应用程序被幸运修补?