私はAndroidを初めて使用します。私は実際に話す時計である目覚まし時計を開発しようとしています。時計にTextToSpeechAPIを使用して、目覚まし時刻がチェックされるとすぐに挨拶の内容と現在の時刻を読み上げたいだけです。スピーチパートが行われます。そして今、私はアラーム機能を実装したいと思います。しかし、最初は、クラスが正しく機能しているかどうかを確認するために、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)このアプリを実装して、アラームが設定されたときに、元の目覚まし時計が実行されている通知バーで実際にサービスとして実行できるようにするにはどうすればよいですか。そのため、アプリが閉じていても、適切なタイミングでアラームメッセージを呼び出すために実行中です。
2)AlarmManagerがServiceまたはBroadcastRecieverのいずれかを拡張するクラスを呼び出す場合、ダイアログボックスを表示できないか、TTSを使用できます。
3)誰かが私にこのアプリを実装するアイデアをくれたら、私は同じアプリケーションを経験したであろう多くの専門家がいると確信しています。
よろしく
オマイヤー