1
Androidで自分の目覚まし時計アプリケーションを構築し、通知に問題があります。私は、通知から昼寝の時間を設定したいので、私はアクション通知アクションがクリックされたときの現在の時刻を取得
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addNotification();
}
private void addNotification() {
SimpleDateFormat sdfHour = new SimpleDateFormat("HH");
SimpleDateFormat sdfMinute = new SimpleDateFormat("mm");
int timeHour = Integer.parseInt(sdfHour.format(getInstance().getTime()));
int timeMinute = Integer.parseInt(sdfMinute.format(getInstance().getTime()));
Intent a15 = new Intent(AlarmClock.ACTION_SET_ALARM);
a15.putExtra(AlarmClock.EXTRA_MESSAGE, "Nap");
a15.putExtra(AlarmClock.EXTRA_HOUR, timeHour);
a15.putExtra(AlarmClock.EXTRA_MINUTES, timeMinute+15);
a15.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
PendingIntent nap15 = PendingIntent.getActivity(this,1,a15,PendingIntent.FLAG_UPDATE_CURRENT);
Intent a30 = new Intent(AlarmClock.ACTION_SET_ALARM);
a30.putExtra(AlarmClock.EXTRA_MESSAGE, "Nap");
a30.putExtra(AlarmClock.EXTRA_HOUR, timeHour);
a30.putExtra(AlarmClock.EXTRA_MINUTES, timeMinute+30);
a30.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
PendingIntent nap30 = PendingIntent.getActivity(this,2,a30,PendingIntent.FLAG_UPDATE_CURRENT);
Intent a45 = new Intent(AlarmClock.ACTION_SET_ALARM);
a45.putExtra(AlarmClock.EXTRA_MESSAGE, "Nap");
a45.putExtra(AlarmClock.EXTRA_HOUR, timeHour);
a45.putExtra(AlarmClock.EXTRA_MINUTES, timeMinute + 3);
a45.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
PendingIntent nap45 = PendingIntent.getActivity(this,3,a45,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_alarm_white_24dp)
.setContentTitle("Take a nap.")
.setContentText("Select nap time.")
.addAction(R.drawable.ic_alarm_add_white_24dp, "15min",nap15)
.addAction(R.drawable.ic_alarm_add_white_24dp, "30min",nap30)
.addAction(R.drawable.ic_alarm_add_white_24dp, "45min",nap45);
// Add as notification
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, mBuilder.build());
}
で通知を構築するが、私は時間から15分間に設定15分の目覚まし時計のための昼寝の時間を選択したときに私の代わりに、現在のシステム時刻の通知を作成したとき。たとえば、午後5時にアプリを実行し、10分後(午後5時10分)に、午後5時から午後5時15分のアラームを設定した通知からアクションを選択します。午後5時10分+ 15日ではないため、現在時刻を取得できます通知のアクション?私は何を使用する必要がありますか?あなたがのSimpleDateFormatから時間と分で現在の時刻を得ることができる
することは私のために動作しません。まだ最初のアプリケーションの実行から現在の時間を取得し、私は現在の値への通知時間doesntの更新でアクションをクリックしたとき – Mich
は、あなたのint timeHourとint timeMinuteをインスタンス化していることを確認します。 – buradd
通知を作成するときにvalurをインスタンス化する方法、通知でaddAction(int、CharSequence、PendingIntent)の両方の値をどのように設定できるかを示します。私はそれを正しく行うために価値を設定する必要があるのですか? – Mich