我有以下代码可以通过我的应用程序接收短信:
public class SMSReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
...
为了测试它,我必须用 telnet 发送一条短信(我对 Android x86 无能为力)。
onReceive
例如,当按下按钮或启动应用程序时,我可以以编程方式调用它吗?我应该传递什么样的参数(即电话号码应该在哪里?消息文本等)?
更新。我找到了这个答案 - https://stackoverflow.com/a/12338541/604388。如果我遵循该代码,即:
intent.setClassName("com.android.mms",
"com.android.mms.transaction.SmsReceiverService");
context.startService(intent);
然后触发标准事件(即标准android消息应用程序接收到消息),但我的代码onReceive
不起作用。如果我将其替换为:
// intent.setClassName("com.android.mms",
// "com.android.mms.transaction.SmsReceiverService");
context.sendBroadcast(intent);
然后我的代码在onReceive
工作,但不是标准的 android 应用程序。我该如何解决?