2012-04-04 57 views
0

我想开发一个应用程序,接收短信和显示警报对话框,获取用户权限和搜索移动特定联系人并发送回复消息。但我不能显示警报对话框,而不使用对话框吐司working.please帮助我。在broatcastReceiver显示警报对话

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(); 
     AlertDialog.Builder dialog=new AlertDialog.Builder(context); 
     dialog.setTitle("You've Requsted msg"); 
     dialog.setPositiveButton("OK",new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 
      } 
     }); 
     dialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 
      } 
     }); 
     dialog.show(); 
    } 
    }   
    // WARNING!!! 
    // If you uncomment next line then received SMS will not be put to incoming. 
    // Be careful! 
    // this.abortBroadcast(); 
} 

回答

1

一个更好的想法是创建活动,并设置其主题是对话..然后使用右键使用来启动这个活动context.startACtivity(intent);