Possible Duplicate:
How do I pass data from a BroadcastReceiver through to an Activity being started?
在我的 Android 应用程序中,我有一个名为 App
的主要 Activity 和一个名为 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);
}
最佳答案
如果您只想在 Activity 未销毁时捕获事件,那么在 Activity 内放置广播接收器就足够了。
如果您想捕获所有广播,即使您的 Activity 尚未开始,请查看 Android Services .
关于您的具体错误,将其粘贴到此处如何?也许还有你的代码?
关于java - 如何将数据从 BroadcastReceiver 传递到主 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13011769/