안드로이드 -- 4 .알림
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(this, null, hour, minute, true);
TimePickerDialog timeDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
}
}, hour, minute, false);
|
cs |
F> 커스텀 다이얼로그
--다이얼로그 레이아웃을 xml 로 일단 만들어 놓기