안드로이드 알람 제작

먼저 알람 관리자 Alarm Manager를 가져옵니다. button의 방법인 set Alarm One () 을 통해 실현됩니다.현재 Calendar 시스템 시간을 가져옵니다. 2.팝업 시간 대화 상자//3.선택한 시간 TimePickerDialog, (TimePickerDialog 시간 선택기)//4.알람 설정//5.Intent에서 Intent로 건너뛰면 실행된 응답("com.example.g150831 android28 alarm notification.RING");
 private AlarmManager alarmManager;



  //       
        alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);




   public void setAlarmOne(View view){
        //        
        Calendar calendar=Calendar.getInstance();
        int hour=calendar.get(Calendar.HOUR_OF_DAY);
        int minute=calendar.get(Calendar.MINUTE);


        //01.       
        TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int i, int i1) {
                Calendar c=Calendar.getInstance();
                c.set(Calendar.HOUR_OF_DAY,i);
                c.set(Calendar.MINUTE,i1);
                //02.        
                //03.    

                //04.     ,      
                Intent intent=new Intent();
                intent.setAction("com.example.g150831_android28_alarm_notification.RING");
                PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);
                alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);


            }
        },hour,minute,true);
        timePickerDialog.show();



    }


  public void cancelAlarmCycle(View view){
        alarmManager.cancel(pendingIntent);
    }

extends BroadcastReceiver를 통해 브로드캐스트 전송을 위한 새로운 activity 클래스RingReceived
 @Override
    public void onReceive(Context context, Intent intent) {
   //com.example.g150831_android28_alarm_notification         if("com.example.g150831_android28_alarm_notification.RING".equals(intent.getAction())){
// intent     Flag
            Log.i("test","     ");
            //   Activity
            Intent intent1=new Intent(context,RingActivity.class);
            // Intent     Flag
            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            //Intent     :ComponementName extra  Action Data Categlay(  ) Flag
            context.startActivity(intent1);
        }

새 Activity를 만듭니다. 시간이 되면 이 Activity로 넘어가서 동작을 수행합니다.
        //    
        mediaPlayer = MediaPlayer.create(this, R.raw.duo);
//    
        mediaPlayer.start();


//  mediaPlayer
public void close(View view){
    mediaPlayer.stop();
    finish();

}

androidmanifest에 있어야 합니다.xml에서 방송의 전송//android:name="com을 설정합니다.example.g150831_android28_alarm_notification.RING"은 브로드캐스트의 activaty와 일치해야 합니다.
 <receiver android:name=".RingReceived">
            <intent-filter
                >
                <action android:name="com.example.g150831_android28_alarm_notification.RING" >action>


            intent-filter>

좋은 웹페이지 즐겨찾기