可能重複:
How do I pass data from a BroadcastReceiver through to an Activity being started?如何將數據從BroadcastReceiver傳輸到主要活動?
在我的Android應用程序,我有一個主要活動稱爲App
和廣播接收器叫做SmsReceiver
。在SmsReceiver
的onReceive()
方法中,我想捕獲一條短信並將其內容發送回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);
}
感謝彼得,這可能是有用的。我會嘗試該帖子的解決方案。 – Neko