Android 상태표시줄에 알림 만들기 Notification
버튼을 클릭하면 상태표시줄에 알림(Notification)이 발생하는 소스코드입니다.
메인화면 알림 발생(상태표시줄) 상태표시줄에 남아있는 알림 아이콘
상태바를 드래그하면 보이는 알림창(확장상태바) 상태바의 지우기 버튼을 누르면 알림이 삭제됨
Layout 파일
activity_main.xml |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="50dp" android:text="generate Notification" android:onClick="mOnClick"/> </RelativeLayout> |
소스파일
MainActivity.java |
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
//Button을 클릭했을 때 자동으로 호출되는 callback method.... public void mOnClick(View v){ switch( v.getId() ){ case R.id.button:
//알림(Notification)을 관리하는 NotificationManager 얻어오기 NotificationManager manager= (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
//알림(Notification)을 만들어내는 Builder 객체 생성 //API 11 버전 이하도 지원하기 위해 NotificationCampat 클래스 사용 //만약 minimum SDK가 API 11 이상이면 Notification 클래스 사용 가능 NotificationCompat.Builder builder= new NotificationCompat.Builder(this);
//Notification.Builder에게 Notification 제목, 내용, 이미지 등을 설정////////////////////////////////////// builder.setSmallIcon(android.R.drawable.ic_dialog_email);//상태표시줄에 보이는 아이콘 모양 builder.setTicker("Notification"); //알림이 발생될 때 잠시 보이는 글씨 //상태바를 드래그하여 아래로 내리면 보이는 알림창(확장 상태바)의 아이콘 모양 지정 builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), android.R.drawable.ic_input_add));
builder.setContentTitle("Contents Title"); //알림창에서의 제목 builder.setContentText("Contents TEXT"); //알림창에서의 글씨 ///////////////////////////////////////////////////////////////////////////////////////////////////////
Notification notification= builder.build(); //Notification 객체 생성
manager.notify(1, notification); //NotificationManager가 알림(Notification)을 표시
break; } } } |