私の Android アプリケーションには、 という名前のメイン アクティビティと という名前App
の BroadcastReceiver がありSmsReceiver
ます。onReceive()
のメソッド内でSmsReceiver
、SMS をキャッチし、その内容を に送り返したいと考えてい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);
}