Klingelton bei Alarm

  • 1 Antworten
  • Neuester Beitrag
Diskutiere Klingelton bei Alarm im Android App Entwicklung im Bereich Betriebssysteme & Apps.
N

newpageart

Neues Mitglied
Hallo Forumsgemeinde!

Ich bin gerade dabei eine Erinnerungsfunktion für meine App zu erstellen. Das Erinnern funktioniert bis jetzt auch ganz gut.Per AlarmManager wird ein Activity aufgerufen und dort wird eine Meldung angezeigt und der Klingelton gestartet. Zusätzlich gibt es noch einen button um den Alarm (Klingelton) abzuschalten.
Nun stellt sich mir aber die Frage was passiewrt wenn der benutzer nicht auf den "Stop"-Button drücjkt, sonder "Home"-Button oder "Zurück"-Button. Das Activity verschwindet und ich kann den Alarm nicht mehr stoppen :(
Wie verhindere ich das Home"-Button oder "Zurück"-Button gedrückt werden. Oder kann man den Klingelton beim drücken mit abschalten?

Code:
public class MyScheduledActivity extends Activity {
    private MediaPlayer mMediaPlayer; 
    private PowerManager.WakeLock wl;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_scheduledactivity);
        
        Bundle extras = getIntent().getExtras();

        TextView tvAlarm = (TextView) findViewById(R.id.tvAlarmText);
        tvAlarm.setText(extras.getString("ReminderText"));
        
        Button buttonDismiss = (Button)findViewById(R.id.dismiss);
        
        buttonDismiss.setOnClickListener(new Button.OnClickListener(){
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                mMediaPlayer.stop();
                finish();
            }});
        
        playSound(getBaseContext(), getAlarmUri());
    }

    protected void onStop() {
        super.onStop();
        wl.release();
    }
    
    private void playSound(Context context, Uri alert) {
        mMediaPlayer = new MediaPlayer();
        try {
            mMediaPlayer.setDataSource(context, alert);
            final AudioManager audioManager = (AudioManager) context
                    .getSystemService(Context.AUDIO_SERVICE);
            if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
                mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
                mMediaPlayer.prepare();
                mMediaPlayer.start();
            }
        } catch (IOException e) {
            Log.v("OUT", "ERROR: "+e.toString());
        }
    }
    private Uri getAlarmUri() {
        Uri alert = RingtoneManager
                .getDefaultUri(RingtoneManager.TYPE_ALARM);
        return alert;
    }
}
Viele Grüße,
Tom
 
blackfire185

blackfire185

Stammgast
Homer button kannst du nicht unterdrücken aber deine app kann reagieren, schaue dir mal den Android life cycle an, insbesondere onPause, was aufgerufen wird, wenn der home button gedrückt wird.

Gesendet von meinem LG-P880 mit der Android-Hilfe.de App