예를 들어 15:52와 같이 특정 시간과 분에 소리와 함께 알람을 설정하려고합니다.
아래 코드를 시도했지만 시간이 15:52이면 아무것도하지 않습니다.
Mainactivity.java :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent slIntent = new Intent(this, MyBroadcastReceiver.class);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 15);
calendar.set(Calendar.MINUTE, 52);
calendar.set(Calendar.SECOND, 0);
PendingIntent slPendingIntent = PendingIntent.getService(this, 1, slIntent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager=(AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, slPendingIntent);
}
MyBroadcastReceiver.class
public class MyBroadcastReceiver extends BroadcastReceiver {
MediaPlayer mp;
@Override
public void onReceive(Context context, Intent intent) {
mp=MediaPlayer.create(context, R.raw.sound); // the sound that should be played at 13:52
mp.start();
Toast.makeText(context, "Alarm....", Toast.LENGTH_LONG).show();
}
}
알람 시간으로 현재 시간을 확인하고 필요한 경우 날짜를 추가해야합니다.
Calendar calendar = Calendar.getInstance();
long now = System.currentTimeMillis();
calendar.setTimeInMillis( now );
calendar.set( Calendar.HOUR_OF_DAY, ini.alarmHours );
calendar.set( Calendar.MINUTE, ini.alarmMinutes );
calendar.set( Calendar.SECOND, 0 );
calendar.set( Calendar.MILLISECOND, 0 );
if( now > calendar.getTimeInMillis() ){
calendar.add( Calendar.DAY_OF_MONTH, 1 );
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다