0

我想开发一个接收短信并显示警报对话框的应用程序,该对话框需要用户许可并在手机中搜索特定联系人并发送回复消息。但是如果不使用 Toast 正在工作的对话框,我将无法显示警报对话框。请帮助我。

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(); 
}
4

1 回答 1

1

一个更好的主意是创建一个活动并将其主题设置为对话框。然后使用上下文来启动这个活动context.startACtivity(intent);

于 2012-04-04T06:19:47.383 回答