1

アプリを閉じた後でも動作するはずのアプリを書いています。これは、着信 SMS を受け入れるために作成したコードです。

public class SMSReceiver extends BroadcastReceiver {

    private ResultReceiver receiver;
    private Context context;

    @Override
    public void onReceive(Context context, Intent intent) {
        this.context = context;

        // Parse the SMS.
        Bundle bundle = intent.getExtras();
        SmsMessage[] msgs = null;
        String str = "";
        if (bundle != null)
        {
            // Retrieve the SMS.
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];
            for (int i=0; i<msgs.length; i++)
            {
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

                str += "SMS from " + msgs[i].getOriginatingAddress();
                str += " :\n";
                str += " :\n";
                str += "MessageBody: ";
                str += msgs[i].getMessageBody();

            }
            Log.i("SmsReceiver message := " + str);
        }
    }
}

このブロードキャストをメイン アクティビティに登録しました。ブロードキャストの登録を解除していません。

これは、アプリを起動すると機能しますが、アプリを閉じると機能しません。

アプリを閉じた後でも SMS を受信するにはどうすればよいですか? どんな助けでも大歓迎です。

ありがとう

4

3 に答える 3

1

受信者はマニフェストにある必要があります。また、宣言された受信者の最高優先度であっても、SMS を受信する保証がないことに注意してください。OS から SMS インテントをたまたま受信した他のインストール済みアプリは、それ以上のインテントの伝播をキャンセルする可能性があります。

于 2013-11-06T13:51:49.887 に答える
0

アクティビティでレシーバーを登録している場合は、登録を解除する必要があります。メモリ リークを回避することは非常に重要です。

いつでもSMSを受信したい場合は、AndroidManifestファイルに登録する必要があります

于 2013-11-06T13:46:28.007 に答える