Android 上不显示锁定屏幕上的 Firebase 通知

问题描述 投票:0回答:1

带有 React Native 的 Firebase 通知在以下情况下工作得非常好:

  • 前台状态
  • 背景状态
  • 退出状态

当Android设备处于锁定屏幕时,手机会振动并收到通知,但屏幕不会打开,除非我手动打开它,然后我可以看到通知。

问题不在于设备,因为来自其他应用程序(例如snapchat和instagram)的通知在收到时会打开屏幕并发出声音。

Android.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.app_name">

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.VIBRATE" />
  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
  <uses-permission android:name="android.permission.WAKE_LOCK"/>
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />



  <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher" android:allowBackup="false" android:theme="@style/AppTheme" android:usesCleartextTraffic="true">
    <!-- Change the value to true to enable pop-up for in foreground on receiving remote notifications (for prevent duplicating while showing local notifications set this to false) -->
    <meta-data android:name="com.dieam.reactnativepushnotification.notification_foreground" android:value="false"/>
    <!-- Change the resource name to your App's accent color - or any other color you want -->
    <meta-data android:name="com.dieam.reactnativepushnotification.notification_color" android:resource="@color/white"/>
    <!-- or @android:color/{name} to use a standard color -->

    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" android:exported="true" />
    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" android:exported="true"/>
    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver" android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />
        <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
      </intent-filter>
    </receiver>

    <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService" android:exported="true">
      <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
      </intent-filter>
    </service>
    <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:largeHeap="true" android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application>
</manifest>

用于触发通知的负载:

{
    "to": "FCM_TOKEN",
    "notification": {
        "title": "Notificatioin Title",
        "body": "Notification Body",
        "sound": "default",
        "android_channel_id": "channel_id",
        "priority": "high"
    },
    "priority": "high",
    "data": {
        "additional_info": ""
    },
    "android":{
      "priority":"high"
    },
    "priority": "high"
}

我尝试寻找一种方法来提高有效负载中通知的优先级,但我测试过的都不起作用。

firebase react-native firebase-cloud-messaging android-notifications
1个回答
-1
投票

你解决这个问题了吗?如果是的话请告诉我怎么做?

© www.soinside.com 2019 - 2024. All rights reserved.