Estou tentando criar um aplicativo simples capaz de definir o alarme do sistema. Mas, embora eu possa ver o alarme definido no momento correto na lista de eventos sob o indicador do meu relógio (na área de trabalho), ele não me notifica de forma alguma.
Se eu criar um novo alarme no minuto relevante para o alarme anterior enquanto o antigo ainda estiver visível na lista de eventos , o antigo de repente me notifica (notificaton + sound). Não estou jogando com nenhuma lista de alarmes, quero apenas que um alarme seja definido por vez, mas quero poder cancelar o alarme que está em andamento. Ele funciona bem, novamente até que a hora atual seja igual à hora do alarme (arredondada para minutos) quando a remoção do alarme logicamente não funcionar, já que o formato da hora é "Tue 2013-09-17 10:56:00" (segundos sempre a zero ), então já passou durante esse minuto, mas ainda é visível na lista de eventos (ok, pertence a esse minuto) e me notifica se eu definir um novo alarme (é isso que Eu não entendo).
Então, para resumir:
Mesmo o exemplo na Web do desenvolvedor do Ubuntu não funciona: link
Aqui está o meu código parcialmente modificado sofrendo o mesmo erro:
import QtQuick 2.3
import Ubuntu.Components 1.1
import Ubuntu.Components.Pickers 0.1
MainView {
objectName: "mainView"
applicationName: "com.ubuntu.developer.username.alarmtest"
useDeprecatedToolbar: false
width: units.gu(100)
height: units.gu(75)
Page {
title: i18n.tr("Simple")
Alarm{
id: alarm
onStatusChanged: {
if(status == Alarm.Ready) {
button.text = "Set Alarm";
}
}
}
Column {
spacing: units.gu(1)
Row {
spacing: units.gu(1)
Label {
id: date
text: "Date:"
anchors.verticalCenter: parent.verticalCenter
}
DatePicker {
id: datePicker
date: new Date()
mode: "Hours|Minutes"
onDateChanged: {
var pickerDate = datePicker.date;
pickerDate.setSeconds(0);
datePicker.date = pickerDate;
}
}
Button {
id: button
text: "Set Alarm";
onClicked: {
if ((alarm.operation > Alarm.NoOperation) && (alarm.operation < Alarm.Reseting)) {
reset();
}
else {
alarm.date = new Date(datePicker.date);
alarm.message = "My alarm";
alarm.save();
if (alarm.error != Alarm.NoError)
print("Error saving alarm, code: " + alarm.error + " at time " + alarm.date);
text = "Unset Alarm";
}
}
}
}
}
}
}
E minha pergunta é: é normal que não funcione ou estou fazendo algo errado? Muito obrigado por qualquer ajuda como estou atualmente completamente perdido aqui. Eu estava explorando o material de alarme de estoque, tentando modificar o código de exemplo oficial e isso não ajudou - nunca funciona para mim. No desktop Ubuntu 14.10 é buggy e no meu Ubuntu Tablet meu aplicativo congela se eu tentar definir um novo alarme após o antigo foi concluído ou removido.