나는 또한 소리를 내야하는 알림에 문제가 있었는데, 앱이 전경에있을 때 모든 것이 올바르게 작동했지만 앱이 배경에있을 때 소리가 나오지 않았습니다.
알림은 FCM을 통해 서버에서 전송되었습니다. 즉, 서버는 알림의 JSON을 마운트하여 FCM으로 보낸 다음 앱으로 알림을 보냅니다. 사운드 태그를 붙여도 배경에서 사운드가 나오지 않습니다.
사운드 태그를 넣어도 작동하지 않았습니다.
많은 검색 끝에 github 포럼에서 해결책을 찾았습니다. 그런 다음 제 경우에는 두 가지 문제가 있음을 알았습니다.
1-API 레벨 26 이상에서 작업하는 데 중요한 channel_id 태그를 전송하지 못했습니다.
2-Android 애플리케이션에서 알림이 서버에서 직접 전송되는 특정 경우에 대해 미리 채널 ID를 구성해야했기 때문에 기본 활동에서 Android가 언제 무엇을해야하는지 알 수 있도록 채널을 구성해야했습니다. 알림이 도착했습니다.
서버에서 보낸 JSON :
{
"title": string,
"body": string,
"icon": string,
"color": string,
"sound": mysound,
"channel_id": videocall,
}
주요 활동에서 :
@Background
void createChannel(){
Uri sound = Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/" + R.raw.app_note_call);
NotificationChannel mChannel;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mChannel = new NotificationChannel("videocall", "VIDEO CALL", NotificationManager.IMPORTANCE_HIGH);
mChannel.setLightColor(Color.GRAY);
mChannel.enableLights(true);
mChannel.setDescription("VIDEO CALL");
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ALARM)
.build();
mChannel.setSound(sound, audioAttributes);
NotificationManager notificationManager =
(NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(mChannel);
}
}
이것은 마침내 내 문제를 해결했으며 누군가가 나처럼 2 일을 낭비하지 않도록 도움이되기를 바랍니다. 내가 코드에 넣은 모든 것이 필요한지 모르겠지만 이것이 방법입니다. 나는 또한 더 이상 답변을 제공하는 github 포럼 링크를 찾지 못했습니다. 왜냐하면 내가 한 일은 거기에 게시 된 것과 동일했기 때문입니다.