2012-04-04 2 views
0

Мое приложение получает SMS и изменения в действии, чтобы отобразить диалоговое окно предупреждения в моем приложении. Toast работает хорошо, но это не изменит активность. onReceive() принимает SMS, содержащие электронную почту, и в зависимости от этого идентификатора электронной почты мое приложение просматривает связанный номер контакта и отправляет его обратно в ответное сообщение.Начать намерение из класса BroadcastReceiver

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); 

    } 
+0

Почему вы прокомментируете эту 'context.startActivity (i);' line? –

ответ

2

Вы добавляете addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) после запуска AlertActivity Activity. используйте этот способ:

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

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

context.startActivity(i); 
+0

Спасибо, что он хорошо работает – venkyMCA