J'essaie de régler l'alarme en utilisant mon application et pour cela j'utilise l'intention commune du réveil comme décrit here.Pourquoi startActivityForResult ne renvoie aucun résultat de l'intention AlarmClock.ACTION_SET_ALARM?
Voici mon code:
public void createAlarm(String message, int hour, int minutes) {
Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)
.putExtra(AlarmClock.EXTRA_MESSAGE, message)
.putExtra(AlarmClock.EXTRA_HOUR, hour)
.putExtra(AlarmClock.EXTRA_MINUTES, minutes)
.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, SET_ALARM_REQUEST_CODE);
}
}
Voilà onActivityResult()
:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SET_ALARM_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
if (data != null) {
Toast.makeText(getBaseContext(), "Alarm for " + data.getData().toString() + " has been set successfully!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getBaseContext(), "data is null", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(getBaseContext(), "resultCode not OK", Toast.LENGTH_SHORT).show();
}
}
}
Le problème est ici que je reçois ce message Toast
: resultCode not OK
. Donc, pourquoi startActivityForResult
ne retourne aucun résultat?
Parce que très probablement votre activité sera tuée avant le réveil. C'est une tâche longue (par exemple 15 heures). Le retour du résultat au démarrage de l'activité est mauvais pour la conception d'alarme je pense. C'est pourquoi il ne retourne aucun résultat. –