我是Android新手。我正在尝试开发一个闹钟应用程序,它实际上是一个闹钟。我只是希望时钟使用TextToSpeech API,并在闹铃时间被打勾后尽快说出问候语和当前时间。演讲部分完成。现在我想实现报警功能。但最初,我只是试图在10秒后显示敬酒,以检查我的课程是否正常工作。而我没有得到理想的回应,我不知道为什么?以下是类报警应用程序需要的帮助
主类aClockActivity
public class aClockActivity extends Activity {
/** Called when the activity is first created. */
private PendingIntent mAlarmSender;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1 = (Button)findViewById(R.id.buttonOn);
button1.setOnClickListener(mStartAlarmListener);
Button button2 = (Button)findViewById(R.id.buttonOff);
button2.setOnClickListener(mStopAlarmListener);
}
private OnClickListener mStartAlarmListener = new OnClickListener() {
public void onClick(View v) {
// We want the alarm to go off 30 seconds from now.
//long firstTime = SystemClock.elapsedRealtime();
EditText Ehour = (EditText) findViewById(R.id.hour);
EditText Eminute = (EditText) findViewById(R.id.minute);
CharSequence CharHour = Ehour.getText();
CharSequence CharMinute = Eminute.getText();
int hour = Integer.parseInt(CharHour.toString());
int minute = Integer.parseInt(CharMinute.toString());
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
// calendar.add(Calendar.MINUTE, 1);
cal.add(Calendar.SECOND, 10);
mAlarmSender = PendingIntent.getBroadcast(aClockActivity.this,
0, new Intent(aClockActivity.this, Alarm_Broadcast.class), 0);
// Schedule the alarm!
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), mAlarmSender);
// Tell the user about what we did.
Toast.makeText(aClockActivity.this, "The Alarm is Set",
Toast.LENGTH_LONG).show();
}
};
private OnClickListener mStopAlarmListener = new OnClickListener() {
public void onClick(View v) {
// And cancel the alarm.
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(mAlarmSender);
// Tell the user about what we did.
Toast.makeText(aClockActivity.this, "Setting off the alarm",
Toast.LENGTH_LONG).show();
}
};
二等Alarm_Broadcast
public class Alarm_Broadcast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm worked", Toast.LENGTH_LONG).show();
}
}
注:请忽略在onclick()方法EDITTEXT部分,我会使用它以后。
除了上述问题,我还想问几个问题。
1)我怎样才能实现这个应用程序,以便设置闹钟时,它实际上可以在原始AlarmClock运行的通知栏中作为服务运行。因此,即使应用程序已关闭,它仍会继续运行以在正确的时间调用警报消息。
2)我不能显示任何对话框,或者如果AlarmManager调用一个扩展Service或BroadcastReciever的类,可以使用TTS。 3)如果有人给我实现这个应用程序的想法,我将不胜感激,我确信有许多专家会经历同样的应用程序。
问候
Omayr
感谢您的洞察力,如果我只是坚持报警管理器,我的报警服务仍然可以正常工作。我想在警报设置完成后继续运行,即使主应用程序已关闭?此外,我无法通过警报管理器启动服务,并且您可以告诉我问题可能是什么?请尽快回复,需要您的帮助 – Omayr 2010-12-18 20:47:24
我不确定其他类是否被调用,因为我确信服务没有运行。有没有适当的程序在你的项目或包中包含新类? – Omayr 2010-12-18 20:53:43
@CommonsWaew:我正在使用getService和PendingIntent。如何将我的活动和服务添加到清单?我没有看到有人在任何论坛上对此发表评论。由于我对Android新手知之甚少,如果你不能,我可以让你的Gmail或Skype的ID,让我可以与你谈话。 – Omayr 2010-12-18 21:27:10