Hello everyone, 

I have the problem, that I can send a SMS within my BroadcastReceiver - 
class. However, it is always the same message that will be sent.

The app has some buttons and one numberpicker.

As soon as the first number is being picked a second class ( 
BroadcastReceiver - class ) is being triggered. 
No, if the user wants to send a new message, he or she picks another number 
the same message will be sent and I do not know why?!

I have already tried to remove the key in the intent but nothing helps me.

Maybe, someone could help me, please?

Thank you very much!

BR,
Bernd

Activity class:

public class AlarmManagerActivity extends Activity {

private AlarmManagerBroadcastReceiver alarm;
Button button1, button2, button3, button4, button5;
NumberPicker np;
TimePicker tp;
int hour, minute;
Data data = new Data();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_alarm_manager);
        alarm = new AlarmManagerBroadcastReceiver();
        tp = new TimePicker(getBaseContext());
        addListenerOnButton();
        tp = (TimePicker)findViewById(R.id.timePicker1);
        tp.clearFocus();
        np = (NumberPicker) findViewById(R.id.numberPicker1);
        np.setMinValue(0);
        np.setMaxValue(1440);
        np.setWrapSelectorWheel(true);
        np.setValue(1);
        data.setTimer(np.getValue());
    }
    
    public void addListenerOnButton() {
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
button5 = (Button) findViewById(R.id.button5);
 button1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if ( np.getValue() > 0 )
Toast.makeText(getBaseContext(), "15 Minuten mit " + np.getValue() + " 
Minuten Intervall sind gebucht", Toast.LENGTH_SHORT).show();
else if (np.getValue() == 0)
Toast.makeText(getBaseContext(), "15 Minuten sind gebucht", 
Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(), "15 Minuten mit " + np.getValue() + "ner 
Minute Intervall sind gebucht", Toast.LENGTH_SHORT).show();       

int a = np.getValue();
data.setTimer(a);
 alarm.SetAlarm(getApplicationContext(), np.getValue(), 
tp.getCurrentHour(), tp.getCurrentMinute());
button2.setEnabled(false);
button3.setEnabled(false);
button4.setEnabled(false);
button5.setEnabled(false);
}
});
 button2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if ( np.getValue() > 0 )
Toast.makeText(getBaseContext(), "30 Minuten mit " + np.getValue() + " 
Minuten Intervall sind gebucht", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(), "30 Minuten sind gebucht", 
Toast.LENGTH_SHORT).show();
alarm.SetAlarm(getApplicationContext(), np.getValue(), tp.getCurrentHour(), 
tp.getCurrentMinute());
button1.setEnabled(false);
button3.setEnabled(false);
button4.setEnabled(false);
button5.setEnabled(false);
}
});
 button3.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if ( np.getValue() > 0 )
Toast.makeText(getBaseContext(), "60 Minuten mit " + np.getValue() + " 
Minuten Intervall sind gebucht", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(), "60 Minuten sind gebucht", 
Toast.LENGTH_SHORT).show();
alarm.SetAlarm(getApplicationContext(), np.getValue(), tp.getCurrentHour(), 
tp.getCurrentMinute());
button1.setEnabled(false);
button2.setEnabled(false);
button4.setEnabled(false);
button5.setEnabled(false);
}
});
 button4.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if ( np.getValue() > 0 )
Toast.makeText(getBaseContext(), "90 Minuten mit " + np.getValue() + " 
Minuten Intervall sind gebucht", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(), "90 Minuten sind gebucht", 
Toast.LENGTH_SHORT).show();
alarm.SetAlarm(getApplicationContext(), np.getValue(), tp.getCurrentHour(), 
tp.getCurrentMinute());
button1.setEnabled(false);
button2.setEnabled(false);
button3.setEnabled(false);
button5.setEnabled(false);
}
});
 button5.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if ( np.getValue() > 0 )
Toast.makeText(getBaseContext(), "120 Minuten mit " + np.getValue() + " 
Minuten Intervall sind gebucht", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(), "120 Minuten sind gebucht", 
Toast.LENGTH_SHORT).show();
alarm.SetAlarm(getApplicationContext(), np.getValue(), tp.getCurrentHour(), 
tp.getCurrentMinute());
button1.setEnabled(false);
button2.setEnabled(false);
button3.setEnabled(false);
button4.setEnabled(false);
}
});
}
    
    @Override
protected void onStart() {
super.onStart();
}

    public void startRepeatingTimer(View view) {
    Context context = this.getApplicationContext();
    if(alarm != null){
    alarm.CancelAlarm(context);
    button1.setEnabled(true);
    button2.setEnabled(true);
    button3.setEnabled(true);
    button4.setEnabled(true);
    button5.setEnabled(true);
    Toast.makeText(context, "Wiederholung wurde gestoppt!", 
Toast.LENGTH_SHORT).show();
    //alarm.SetAlarm(context);
    }else{
    Toast.makeText(context, "Alarm is null", Toast.LENGTH_SHORT).show();
    }
    }
/*    
    public void cancelRepeatingTimer(View view){
    Context context = this.getApplicationContext();
    if(alarm != null){
    alarm.CancelAlarm(context);
    }else{
    Toast.makeText(context, "Alarm is null", Toast.LENGTH_SHORT).show();
    }
    }
    */
/*    
    public void onetimeTimer(View view){
    Context context = this.getApplicationContext();
    if(alarm != null){
    alarm.setOnetimeTimer(context);
    }else{
    Toast.makeText(context, "Alarm is null", Toast.LENGTH_SHORT).show();
    }
    }
*/    
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_widget_alarm_manager, 
menu);
        return true;
    }
}


BroadcastReceiver class:

public class AlarmManagerBroadcastReceiver extends BroadcastReceiver {

final public static String ONE_TIME = "onetime";
Data data = new Data();
    int v = data.getTimer();

@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
 PowerManager pm = (PowerManager) 
context.getSystemService(Context.POWER_SERVICE);
         PowerManager.WakeLock wl = 
pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
         //Acquire the lock
         wl.acquire();

         SmsManager smsManager = SmsManager.getDefault();
         //smsManager.sendTextMessage("082820200", null, "test", null, 
null);
         smsManager.sendTextMessage("xxx", null, 
extras.get(ONE_TIME).toString() , null, null);
         
         //You can do the processing here update the widget/remote views.
         
         //StringBuilder msgStr = new StringBuilder();

         
        /* if(extras != null && extras.getBoolean(ONE_TIME, Boolean.FALSE)){
         msgStr.append("One time Timer : ");
         }
         Format formatter = new SimpleDateFormat("hh:mm:ss a");
         msgStr.append(formatter.format(new Date()));

         Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show();
         */
         //Release the lock
         wl.release();
}
public void SetAlarm(Context context, long timer, int hour, int minute){
if(timer != 0){//set repeating timer
        AlarmManager 
am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(context, 
AlarmManagerBroadcastReceiver.class);
        intent.removeExtra(ONE_TIME);
        intent.removeExtra(SECOND);
        intent.putExtra(ONE_TIME, "a");
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 
0);
        //start in 2 seconds
        /*Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.SECOND, 2);*/
        //when to start
        Calendar timeOff9 = Calendar.getInstance();
timeOff9.set(Calendar.HOUR_OF_DAY, hour);
timeOff9.set(Calendar.MINUTE, minute);
//timeOff9.set(Calendar.SECOND, 00);
//when to start
        am.setRepeating(AlarmManager.RTC_WAKEUP, 
timeOff9.getTimeInMillis(), timer*60000, pi);
        }else{//one timer
         Intent intent = new Intent(context, 
AlarmManagerBroadcastReceiver.class);
         AlarmManager 
am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
            //Intent intent = new Intent(context, 
AlarmManagerBroadcastReceiver.class);
         intent.removeExtra(ONE_TIME);
         intent.removeExtra(SECOND);
            intent.putExtra(SECOND, "b");
            PendingIntent pi = PendingIntent.getBroadcast(context, 0, 
intent, 0);
            am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pi);
}
    }
    public void CancelAlarm(Context context)
    {
        Intent intent = new Intent(context, 
AlarmManagerBroadcastReceiver.class);
        PendingIntent sender = PendingIntent.getBroadcast(context, 0, 
intent, 0);
        AlarmManager alarmManager = (AlarmManager) 
context.getSystemService(Context.ALARM_SERVICE);
        alarmManager.cancel(sender);
    }
    /*
    public void setOnetimeTimer(Context context){
    AlarmManager 
am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(context, 
AlarmManagerBroadcastReceiver.class);
        intent.putExtra(ONE_TIME, Boolean.TRUE);
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 
0);
        am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pi);
    }
    */
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to