>

FCM 알림이 Android 최신 버전 OREO에서 작동하지 않습니다.

아래는 제 코드입니다 :

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example">
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/luncher_logo"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/luncher_logo"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".WelcomeActivity">
            <intent-filter>
                <action android:name="com.example.action.MAIN" />
                <category android:name="com.example.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity" />

        <service android:name=".firebase.MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service android:name=".firebase.FirebaseIDService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
</manifest>


  • 답변 # 1

    Android 8.0 (API 레벨 26+)부터 알림 채널이 지원되고 권장됩니다.

    와이즈 비즈

    자신의 기본 채널을 만들고 사용하려면

    FCM provides a default notification channel with basic settings.

    를 설정하십시오  아래 표시된대로 알림 채널 개체의 ID로

    와이즈 비즈
    default_notification_channel_id
    
    

    이 링크에서 채널 ID를 만들 수 있습니다

  • 답변 # 2

    Android Oreo 제작 채널에서는 중요합니다. 알림을 만들 때 채널 ID를 전달해야합니다. 그렇지 않으면 알림이 Oreo 장치에 표시되지 않습니다.

    추가 정보

    빠른 수정은 : 알림 클래스에서 setChannelId 메소드를 사용하십시오.

    FCM will use this value whenever incoming messages do not explicitly set a notification channel.

    이 링크의 완전한 답변.

  • 답변 # 3

    <meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="@string/default_notification_channel_id"/> 에 알림을 표시하려면 채널을 만들어야합니다 .

    기본 firebase 알림을 사용하는 경우 Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_notif_icon) .setContentTitle("testTitle") .setContentText(messageBody) .setAutoCancel(true) .setSound(defaultSoundUri) .setChannelId("testChannelId") // set channel id .setContentIntent(pendingIntent); 를 추가 할 수 있습니다  매니페스트에서.

    Oreo
    
    

    알림을 수동으로 만드는 경우 프로그래밍 방식으로 채널을 만들어야합니다. 공식 문서에 대한 자세한 내용.

    channel_id

관련 자료

  • 이전 PHP Cassandra Timeuuid 생성자가 정수 한계에 도달했습니다 (32 비트)
  • 다음 jquery - Javascript 다음 코드 줄의 차이점은 무엇입니까?