Ich arbeite derzeit an einer Alarmanwendung für Android (ja, ich weiß, dass ich nicht der einzige bin). Ich bin ziemlich neu in Android-Entwicklung, aber ich habe es geschafft, den Kern der App zu vervollständigen und alles, was ich brauche, ist 1 Sache. Um in der Lage sein, einen Alarm zu setzen (bei x-y-z Zeit) und sobald der Alarm losgeht, um eine Aktivität zu starten, auch wenn das Telefon schläft (nicht aus offensichtlich), und der Rest ist getan.
Jetzt ive lesen Sie den Entwickler-Leitfaden und ich glaube, dass der Weg zu gehen ist durch ein BroadcastReceiver und dann sollte intentSender die Aktivität zu starten, aber ich kippe scheinen, wo alle Beispiele oder ähnliche Beiträge zu finden, um zumindest eine Idee zu bekommen.
Im Moment habe ich den AlarmManager, der tatsächlich auf die Aktivität weckt, aber nur funktioniert, wenn das Telefon vollständig wach ist und überhaupt nicht, wenn es schläft, oder zumindest bis das Telefon entsperrt ist.
Irgendwelche Vorschläge? Bei Bedarf kann ich ein Code-Beispiel posten. Vielen Dank im Voraus
Update
@Joel Danke für die Antwort, Mann. Ich hatte tatsächlich über PowerManager.WakeLock gelesen, aber ich bin froh, dass Sie mich auf den Weg gebracht haben. Jetzt ist dies, was ive kommen mit für die empfangende Aktivität (es könnte falsch sein, aber mit mir tragen)
public class OnAlarmActivity extends Activity {
MediaPlayer mpAlarm;
MediaPlayer mpButton;
PowerManager.WakeLock wl;
private BroadcastReceiver theReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.on_alarm);
mpAlarm = MediaPlayer.create(this, R.raw.filename);
mpAlarm.start();
mpButton = MediaPlayer.create(this, R.raw.buttonfilename);
ImageView imgForAlarmScreen= (ImageView)findViewById(R.id.oftheimage);
Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
imgForAlarmScreen.startAnimation(myFadeInAnimation); //animation for ImageView
Button bNextActivity = (Button)findViewById(R.id.ofthebutton);
bNextActivity.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mpButton.start();
startActivity(new Intent("com.myapps.otheractivity"));
}
});
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mpAlarm.start();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mpAlarm.pause();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
mpAlarm.start();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
wl.release();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mpAlarm.release();
}
}
Jetzt all dies und doch wird es nicht aufwachen noch sogar Ton, es sei denn, Telefon aktiv ist (wach). Irgendwelche Ideen, wie ich die Wecksperre effektiv nutzen kann?