0

SMSを受信し、ユーザーの許可を得てモバイルで特定の連絡先を検索し、返信メッセージを送信するアラートダイアログボックスを表示するアプリを開発したいと思います。しかし、トーストが機能しているダイアログボックスを使用せずにアラートダイアログを表示することはできません。助けてください。

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 に答える