我是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