feat: 알림음 시스템 - Android 6개 NotificationChannel 추가
- 결제/수주/발주/계약/일반/긴급 채널 추가 - 각 채널별 커스텀 알림음 파일 추가 (wav) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -13,8 +13,12 @@ import com.getcapacitor.BridgeActivity;
|
|||||||
public class MainActivity extends BridgeActivity {
|
public class MainActivity extends BridgeActivity {
|
||||||
|
|
||||||
// 채널 ID (FCM payload의 android.notification.channel_id 로 사용할 값)
|
// 채널 ID (FCM payload의 android.notification.channel_id 로 사용할 값)
|
||||||
public static final String CHANNEL_DEFAULT = "push_default";
|
public static final String CHANNEL_DEFAULT = "push_default";
|
||||||
public static final String CHANNEL_URGENT = "push_urgent";
|
public static final String CHANNEL_URGENT = "push_urgent";
|
||||||
|
public static final String CHANNEL_PAYMENT = "push_payment";
|
||||||
|
public static final String CHANNEL_SALES_ORDER = "push_sales_order";
|
||||||
|
public static final String CHANNEL_PURCHASE_ORDER = "push_purchase_order";
|
||||||
|
public static final String CHANNEL_CONTRACT = "push_contract";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -28,40 +32,88 @@ public class MainActivity extends BridgeActivity {
|
|||||||
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||||
if (nm == null) return;
|
if (nm == null) return;
|
||||||
|
|
||||||
// 이미 존재하면 생성 안 함 (중복 방지)
|
// 이미 모든 채널이 존재하면 생성 안 함 (중복 방지)
|
||||||
if (nm.getNotificationChannel(CHANNEL_DEFAULT) != null
|
if (nm.getNotificationChannel(CHANNEL_DEFAULT) != null
|
||||||
&& nm.getNotificationChannel(CHANNEL_URGENT) != null) {
|
&& nm.getNotificationChannel(CHANNEL_URGENT) != null
|
||||||
|
&& nm.getNotificationChannel(CHANNEL_PAYMENT) != null
|
||||||
|
&& nm.getNotificationChannel(CHANNEL_SALES_ORDER) != null
|
||||||
|
&& nm.getNotificationChannel(CHANNEL_PURCHASE_ORDER) != null
|
||||||
|
&& nm.getNotificationChannel(CHANNEL_CONTRACT) != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// raw 리소스 사운드 (android/app/src/main/res/raw/ 에 넣어야 함)
|
// raw 리소스 사운드 (android/app/src/main/res/raw/ 에 넣어야 함)
|
||||||
Uri soundDefault = Uri.parse("android.resource://" + getPackageName() + "/raw/push_default");
|
Uri soundDefault = Uri.parse("android.resource://" + getPackageName() + "/raw/push_default");
|
||||||
Uri soundUrgent = Uri.parse("android.resource://" + getPackageName() + "/raw/push_urgent");
|
Uri soundUrgent = Uri.parse("android.resource://" + getPackageName() + "/raw/push_urgent");
|
||||||
|
Uri soundPayment = Uri.parse("android.resource://" + getPackageName() + "/raw/push_payment");
|
||||||
|
Uri soundSalesOrder = Uri.parse("android.resource://" + getPackageName() + "/raw/push_sales_order");
|
||||||
|
Uri soundPurchaseOrder = Uri.parse("android.resource://" + getPackageName() + "/raw/push_purchase_order");
|
||||||
|
Uri soundContract = Uri.parse("android.resource://" + getPackageName() + "/raw/push_contract");
|
||||||
|
|
||||||
AudioAttributes aa = new AudioAttributes.Builder()
|
AudioAttributes aa = new AudioAttributes.Builder()
|
||||||
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
|
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
|
||||||
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// 1) 기본 채널
|
// 1) 기본 채널 (일반 알림)
|
||||||
NotificationChannel chDefault = new NotificationChannel(
|
NotificationChannel chDefault = new NotificationChannel(
|
||||||
CHANNEL_DEFAULT,
|
CHANNEL_DEFAULT,
|
||||||
"Default Notifications",
|
"일반 알림",
|
||||||
NotificationManager.IMPORTANCE_DEFAULT
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
);
|
);
|
||||||
chDefault.setDescription("General notifications");
|
chDefault.setDescription("일반 알림");
|
||||||
chDefault.setSound(soundDefault, aa);
|
chDefault.setSound(soundDefault, aa);
|
||||||
|
|
||||||
// 2) 긴급 채널
|
// 2) 긴급 채널 (신규업체 등록)
|
||||||
NotificationChannel chUrgent = new NotificationChannel(
|
NotificationChannel chUrgent = new NotificationChannel(
|
||||||
CHANNEL_URGENT,
|
CHANNEL_URGENT,
|
||||||
"Urgent Notifications",
|
"신규업체 등록",
|
||||||
NotificationManager.IMPORTANCE_HIGH
|
NotificationManager.IMPORTANCE_HIGH
|
||||||
);
|
);
|
||||||
chUrgent.setDescription("Urgent notifications");
|
chUrgent.setDescription("신규업체 등록 알림");
|
||||||
chUrgent.setSound(soundUrgent, aa);
|
chUrgent.setSound(soundUrgent, aa);
|
||||||
|
|
||||||
|
// 3) 결제 채널
|
||||||
|
NotificationChannel chPayment = new NotificationChannel(
|
||||||
|
CHANNEL_PAYMENT,
|
||||||
|
"결제 알림",
|
||||||
|
NotificationManager.IMPORTANCE_HIGH
|
||||||
|
);
|
||||||
|
chPayment.setDescription("결제 관련 알림");
|
||||||
|
chPayment.setSound(soundPayment, aa);
|
||||||
|
|
||||||
|
// 4) 수주 채널
|
||||||
|
NotificationChannel chSalesOrder = new NotificationChannel(
|
||||||
|
CHANNEL_SALES_ORDER,
|
||||||
|
"수주 알림",
|
||||||
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
|
);
|
||||||
|
chSalesOrder.setDescription("수주 관련 알림");
|
||||||
|
chSalesOrder.setSound(soundSalesOrder, aa);
|
||||||
|
|
||||||
|
// 5) 발주 채널
|
||||||
|
NotificationChannel chPurchaseOrder = new NotificationChannel(
|
||||||
|
CHANNEL_PURCHASE_ORDER,
|
||||||
|
"발주 알림",
|
||||||
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
|
);
|
||||||
|
chPurchaseOrder.setDescription("발주 관련 알림");
|
||||||
|
chPurchaseOrder.setSound(soundPurchaseOrder, aa);
|
||||||
|
|
||||||
|
// 6) 계약 채널
|
||||||
|
NotificationChannel chContract = new NotificationChannel(
|
||||||
|
CHANNEL_CONTRACT,
|
||||||
|
"계약 알림",
|
||||||
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
|
);
|
||||||
|
chContract.setDescription("계약 관련 알림");
|
||||||
|
chContract.setSound(soundContract, aa);
|
||||||
|
|
||||||
nm.createNotificationChannel(chDefault);
|
nm.createNotificationChannel(chDefault);
|
||||||
nm.createNotificationChannel(chUrgent);
|
nm.createNotificationChannel(chUrgent);
|
||||||
|
nm.createNotificationChannel(chPayment);
|
||||||
|
nm.createNotificationChannel(chSalesOrder);
|
||||||
|
nm.createNotificationChannel(chPurchaseOrder);
|
||||||
|
nm.createNotificationChannel(chContract);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BIN
android/app/src/main/res/raw/push_contract.wav
Normal file
BIN
android/app/src/main/res/raw/push_contract.wav
Normal file
Binary file not shown.
Binary file not shown.
BIN
android/app/src/main/res/raw/push_payment.wav
Normal file
BIN
android/app/src/main/res/raw/push_payment.wav
Normal file
Binary file not shown.
BIN
android/app/src/main/res/raw/push_purchase_order.wav
Normal file
BIN
android/app/src/main/res/raw/push_purchase_order.wav
Normal file
Binary file not shown.
BIN
android/app/src/main/res/raw/push_sales_order.wav
Normal file
BIN
android/app/src/main/res/raw/push_sales_order.wav
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user