Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Android에서 로컬 알림(Local Notification) 만드는 방법 – 단계별 완벽 가이드

이 튜토리얼에서는 Android에서 로컬 알림(Local Notification)을 생성하는 방법을 단계별로 살펴봅니다. 버튼 하나를 누르면 알림이 표시되는 간단한 예제 앱을 직접 만들어 보겠습니다.

1단계: 새 프로젝트 생성

Android Studio를 실행하고 File → New Project 메뉴로 이동한 후, 새 프로젝트 생성에 필요한 모든 세부 정보(프로젝트 이름, 패키지명, 최소 SDK 버전 등)를 입력하여 새 프로젝트를 만듭니다.

2단계: activity_main.xml에 코드 추가

아래 코드를 res/layout/activity_main.xml 파일에 추가합니다. 화면 중앙에 'Create Notification' 버튼 하나를 배치하는 간단한 레이아웃입니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnCreateNotification"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true"
        android:layout_centerInParent="true"
        android:text="Create Notification" />

</RelativeLayout>

3단계: MainActivity에 코드 추가

아래 코드를 src/MainActivity.java 파일에 추가합니다. 이 코드가 핵심 부분으로, 알림 채널(Notification Channel)을 생성하고 알림을 빌드하여 화면에 표시하는 역할을 합니다.

package app.tutorialspoint.com.notifyme;

import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    public static final String NOTIFICATION_CHANNEL_ID = "10001";
    private final static String default_notification_channel_id = "default";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void createNotification(View view) {
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(MainActivity.this, default_notification_channel_id);
        mBuilder.setContentTitle("My Notification");
        mBuilder.setContentText("Notification Listener Service Example");
        mBuilder.setTicker("Notification Listener Service Example");
        mBuilder.setSmallIcon(R.drawable.ic_launcher_foreground);
        mBuilder.setAutoCancel(true);

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", importance);
            mBuilder.setChannelId(NOTIFICATION_CHANNEL_ID);
            assert mNotificationManager != null;
            mNotificationManager.createNotificationChannel(notificationChannel);
        }
        assert mNotificationManager != null;
        mNotificationManager.notify((int) System.currentTimeMillis(), mBuilder.build());
    }
}

코드 핵심 포인트

  • 알림 채널: Android 8.0(Oreo, API 26)부터는 반드시 알림 채널을 생성해야 알림이 정상적으로 표시됩니다.
  • setAutoCancel(true): 사용자가 알림을 탭하면 자동으로 알림이 사라지도록 설정합니다.
  • notify()의 고유 ID: System.currentTimeMillis()를 ID로 사용하여 여러 개의 알림이 서로 덮어쓰이지 않게 합니다.

4단계: AndroidManifest.xml에 코드 추가

아래 코드를 AndroidManifest.xml 파일에 추가합니다. 진동 알림을 위해 VIBRATE 권한을 선언하는 부분이 포함되어 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.com.notifyme">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 Android 스마트폰을 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 상단 툴바에서 Run(실행) 아이콘을 클릭하세요. 옵션 목록에서 본인의 모바일 기기를 선택하면, 기기에 앱이 설치되고 기본 화면이 표시됩니다.

화면 중앙의 'Create Notification' 버튼을 탭하면 아래와 같이 알림이 정상적으로 생성되어 상태 바에 나타나는 것을 확인할 수 있습니다.

Android에서 로컬 알림(Local Notification) 만드는 방법 – 단계별 완벽 가이드

Android에서 로컬 알림(Local Notification) 만드는 방법 – 단계별 완벽 가이드