1
我試圖創建一個Android鬧鐘,當一個動作在另一個屏幕上完成時(即用戶在數學問題中鍵入一個答案),該鬧鐘將關閉。如何在Android上通過另一個屏幕上的操作關閉鬧鐘?
如何:
- 允許用戶設置自己的每日鬧鈴在屏幕上用timepicker
- 實現該報警
- 允許用戶通過做數學題關閉報警器(或任何 其他行動)在另一個屏幕上
我試着按照這個建議的解決方案的例子:Unable to set alarm time in android
但它不會播放鈴聲。我行
Toast.makeText(BrainBuzzActivity.this, "Alarm has been set.", Toast.LENGTH_LONG).show();
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
if(alert == null){
// alert is null, using backup
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
if(alert == null){
// alert backup is null, using 2nd backup
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
}
}
ORIGINAL主頁(創作意圖)
public class BrainBuzzActivity extends Activity
{
private Button alarm = null;
private AlarmManager alarmManager = null;
Calendar cal = Calendar.getInstance();
static final int DIALOG_TIME = 0;
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm = (Button) findViewById(R.id.alarm);
alarm.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(DIALOG_TIME);
}
});
}
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
switch(id){
case DIALOG_TIME:
dialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
// c.clear();
//c.set(Calendar.YEAR, 2011);
//c.set(Calendar.MONTH, 6);
//c.set(Calendar.DAY_OF_MONTH, 4);
c.set(Calendar.HOUR_OF_DAY, hourOfDay);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
//c.set(Calendar.MILLISECOND, 0);
Intent intent = new Intent(BrainBuzzActivity.this,AlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(BrainBuzzActivity.this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);
Toast.makeText(BrainBuzzActivity.this, "Alarm has been set.", Toast.LENGTH_LONG).show();
Intent i = new Intent(BrainBuzzActivity.this, CloudCapture.class);
startActivity(i);
}
},cal.get(Calendar.HOUR_OF_DAY),cal.get(Calendar.MINUTE),false);
break;
}
return dialog;
}
嗨,所以在我的主要活動中,PendingIntent被定義爲 PendingIntent pi = PendingIntent.getBroadcast(MainPage.this,0,intent,0); 如何取消其他課程?我試過 PendingIntent pi = PendingIntent.getBroadcast(MainPage.this,0,intent,0); cancel(pi); 對不起n00by ... – ellothere
你是如何創建'intent'?用該代碼編輯您的原始問題 – Craigy
感謝您的快速響應!代碼已發佈。 – ellothere