0

私のアプリケーションは SMS を受信し、アクティビティを変更して、アプリにアラート ダイアログ ボックスを表示します。Toastうまく機能していますが、アクティビティは変わりません。onReceive()電子メールを含む SMS を取得し、その電子メール ID に応じて、アプリは関連する連絡先番号を検索し、返信メッセージで送り返します。

public void onReceive( Context context, Intent intent ) 
{
    // Get SMS map from Intent
    Bundle extras = intent.getExtras();

    String messages = "";

    if ( extras != null )
    {
        // Get received SMS array
        Object[] smsExtra = (Object[]) extras.get( "pdus" );

        // Get ContentResolver object for pushing encrypted SMS to incoming folder
        //ContentResolver contentResolver = context.getContentResolver();

        for ( int i = 0; i < smsExtra.length; ++i )
        {
            SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);

            String body = sms.getMessageBody().toString();
            String address = sms.getOriginatingAddress();

            messages += "SMS from " + address + " :\n";                    
            messages += body + "\n";

            // Here you can add any your code to work with incoming SMS
            // I added encrypting of all received SMS 


        }

        // Display SMS message
        Toast.makeText( context, messages, Toast.LENGTH_SHORT ).show();
        Intent i=new Intent(context,AlertActivity.class);
       // context.startActivity(i);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    }
4

1 に答える 1

2

addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)AlertActivity アクティビティを開始した後に追加します。このように使用します:

Intent i=new Intent(context,AlertActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

context.startActivity(i);
于 2012-04-04T10:45:48.180 に答える