카테고리 없음

안드로이드 -- 4 .알림

밍래그로프 2021. 3. 5. 10:03

0. 알아두기

퍼미션 (권한 설정)

--알림을 처리하려면 퍼미션을 설정해야 한다.

-- 퍼미션이란 A란 앱이 어떤 컴포넌트에 permission을 부여했다면

    B라는 앱이 A의 컴포넌트를 사용할때는 A의 permission을 받아야만

    컴포넌트를 사용할 수 있다.

 

 

인플레이터 

-- xml로 된 레이아웃들을 화면으로 구현해주는 객체

 

A> 진동울리기 

--퍼미션 : android_manifest.xml 에서 추가

1
<uses-permission android:name="android.permission.VIBRATE"/>
cs

-- 자바에서 사용할 때 

1
2
3
Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
       vibrator.vibrate(1000); //1초 동안
       vibrator.vibrate(new long[]{500,1000,500,1000},-1)
//0.5/ 1 /0.5/ 1 초 진동 후 끝
cs

예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
    public void onClick(View v) {
        if (v == vibrationBtn) {
            Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            vibrator.vibrate(1000);
        } else if (v == systemBeepBtn) {
            Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            Ringtone ringtone =RingtoneManager.getRingtone(getApplicationContext(),notification);
            ringtone.play();
        } else if(v==cutomBeepBtn){
            MediaPlayer player = MediaPlayer.create(this,R.raw.fallbackring);
            player.start();
        }
    }
cs

8행에서 getApplicationContext() 는 현재 모듈의 정보를 가져오겠다는 뜻 , 

notification 은 7행에서 정의한 변수이다. 

11행의 this 는 현재의 어플리케이션 , 즉 ApplicationContext() 이다. 

7행의 RingtoneManager.TYPE_NOTIFICATION 이외에도 RingtoneManager.ALAM 같은 걸로 소리를 바꿀수 있다.

 

 

B>토스트 

 

1.기본형태

1
2
Toast t = Toast.makeText(this"메세지", Toast.LENGTH_LONG);
        t.show();
cs

 

2.부가적인 메소드

setDuration(int duration)

setText(int resId)

setView (View view)

setGravity(int gravity, int xOffset, int yOffset)

setMargin(float horizontalMargin, float verticalMargin)

 

 

 

C> 알림 창(AlertDialog)

1.알림 창을 만드는 Builder 먼저 생성

AlertDialog.Builder builder=new AlertDialog.Builder(this);

 

2. 다이얼로그 구성

setIcon(int iconId): 타이틀 영역의 아이콘 지정 

setMessage(CharSequence message): 본문을 단순 문자열로 구성 

setTitle(CharSequence title): 타이틀 문자열 지정

setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)  setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)  setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)

 

3.알림 창 생성 과 보여주기

alerDialog = builder.create();

alerDialog.show()

-- setCancelable(boolean cancelable)  :취소 가능 여부

-- setCanceledOnTouchOutside(boolean cancel) : 바깥 화면 클릭시 취소  여부

 

D> 목록 alertDialog

builder.setItems(R.array.dialog_array, dialogListener);

 

DialogInterface.OnClickListener dialogListener=new DialogInterface.OnClickListener() {

@Override public void onClick(DialogInterface dialog, int which) {

 

}

};

 

E> TimePicker

1. 날짜 선택

DatePickerDialog dateDialog=new DatePickerDialog(this, null, year, month, day);

1
2
3
4
5
6
7
DatePickerDialog dateDialog=new DatePickerDialog(this, new
DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
}
}, year, month, day);
cs

 

2. 시간 선택

1
2
3
4
5
6
TimePickerDialog timeDialog=new TimePickerDialog(thisnull, hour, minute, true);
TimePickerDialog timeDialog=new TimePickerDialog(thisnew TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
}
}, hour, minute, false);
cs

 

 

F> 커스텀 다이얼로그

--다이얼로그 레이아웃을 xml 로 일단 만들어 놓기