0

可能重复:
如何将数据从 BroadcastReceiver 传递到正在启动的 Activity?

在我的 Android 应用程序中,我有一个名为的主要活动App和一个名为的 BroadcastReceiver SmsReceiver。在onReceive()方法中SmsReceiver,我想捕获一条短信并将其内容发送回App。不过,我不知道该怎么做。这可以通过里面的课程来完成App吗?我已经尝试过这样做,并将该类的名称添加到 AndroidManifest,但在尝试调用它时,应用程序崩溃并显示无法实例化此类的错误。

(我知道这个问题之前已经发布过,但我还没有看到任何令人满意的答案。)

编辑,以说明我尝试的解决方案:

在 AndroidManifest 中,我添加了以下内容:

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

在 App 类中,我添加了:

public class SmsHandler extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        // Stuff here
    }
}

public static final String TEXT_INTENT = "textintent";

我尝试使用以下代码调用它(SmsReceiver但这会使应用程序崩溃):

private void forwardSms(Message message, Context context) {
    Intent myIntent = new Intent(MsgWallApp.TEXT_INTENT);

    Bundle myData = new Bundle();
    myData.putString("sender", message.getSender());
    myData.putString("text", message.getText());
    context.sendBroadcast(myIntent);
}
4

1 回答 1

2

如果您只想在活动未销毁时捕获事件,那么在活动内拥有广播接收器就足够了。

如果您想捕获所有广播,即使您的活动没有开始,请查看Android Services

关于您的具体错误,将其粘贴在这里怎么样?也可能是你的代码?

于 2012-10-22T12:51:35.113 回答