-1

警報プロジェクト

このアプリでは、値のセットを挿入していますEditText

a)3

b)5554

c)iOS

[アラームの送信]をクリックすると、1分ごとにSMSが送信されます。今、私はアラームをキャンセルしました、そして再び私は次のように新しい値を挿入してこのアプリを始めています:

a)3

b)12345

c)Android

再度アラームを開始しますが、今回は新しい値を取得していません。代わりに、テキスト「iOS」を含む「5554」にSMSを送信しています。新しい値を更新する方法を知りたいです。私は2つのクラスを持っています。1)MainActivity 2)レシーバー

コード:

public class MyyActivity extends Activity {
EditText et, et1, et2;
Button b, b1;
AlarmManager alarmManager;

String no,text,ala; 
PendingIntent pi;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    et = (EditText) findViewById(R.id.editTextEnter);
    et1 = (EditText) findViewById(R.id.editTextNUMBER);
    et2 = (EditText) findViewById(R.id.editTextTEXT);
    b = (Button) findViewById(R.id.buttonSendAlarm);
    b1 = (Button) findViewById(R.id.Cancel);
    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

             no = et1.getText().toString();
             text = et2.getText().toString();
             ala = et.getText().toString();


            int foo = Integer.parseInt(ala);
            Intent myIntent = new Intent(MyyActivity.this, MyRecvr.class);
            Bundle bundle = new Bundle();
            bundle.putCharSequence("no", no);
            bundle.putCharSequence("text", text);
            myIntent.putExtras(bundle);
            pi = PendingIntent.getBroadcast(getApplicationContext(), 0,
                    myIntent, 0);

            alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(System.currentTimeMillis());
            calendar.add(Calendar.SECOND, foo);

            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*1,pi);

            Toast.makeText(
                    getApplicationContext(),
                    "Start Alarm with \n" + "smsNumber = " + no + "\n"
                            + "smsText = " + text, Toast.LENGTH_SHORT)
                    .show();
            et.setText("");
            et1.setText("");
            et2.setText("");
        }
    });
    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(getApplicationContext(), MyRecvr.class);
            PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(),
                           0, intent, 0);
            alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
            alarmManager.cancel(sender);
            Toast.makeText(MyyActivity.this, "Cancel!", Toast.LENGTH_LONG)
                    .show();
            finish();

        }
    });
}

そしてReceiverクラス:

public class MyRecvr extends BroadcastReceiver {
@SuppressWarnings("deprecation")
SmsManager sms;


@SuppressWarnings("deprecation")
@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Bundle bundle = intent.getExtras();
    String smsNumbr= (String) bundle.getCharSequence("no");
    String smsText = (String) bundle.getCharSequence("text");

    Toast.makeText(context, "MyAlarmService.onStart()", Toast.LENGTH_LONG)
            .show();
    Toast.makeText(
            context,
            "MyAlarmService.onStart() with \n" + "smsNumberToSend = "
                    + smsNumbr + "\n" + "smsTextToSend = "
                    + smsText, Toast.LENGTH_LONG).show();
    sms = SmsManager.getDefault();
    sms.sendTextMessage(smsNumbr, null, smsText, null, null);
}
4

1 に答える 1

0

FLAG_UPDATE_CURRENT呼び出し0の最後のパラメーターの代わりに使用して、 .getBroadcast()PendingIntent

于 2012-12-15T19:03:23.623 に答える