React Native Firebase:没有自定义声音,没有振动

时间:2019-02-22 19:26:18

标签: android firebase push-notification react-native-firebase

我尝试在通知到达时实现该功能,手机应该振动并播放某种铃声。

但是,我只能播放手机的默认通知声音。

我正在使用的版本:

    "react": "16.6.0-alpha.8af6728",
    "react-native": "0.57.8",
    "react-native-firebase": "^5.2.1",

代码:

首先,我创建频道

        const channel = new firebase.notifications.Android.Channel(
                'my_channel_id', 
                'My channel', 
                firebase.notifications.Android.Importance.Max
            )
            .setDescription('My Notif')
            .setSound("mysound.mp3")
      .setVibrationPattern([400, 800, 600, 800, 800, 800, 1000]) 
            .setLockScreenVisibility(firebase.notifications.Android.Visibility.Public)

        this.channel.enableVibration(true);

        firebase.notifications().android.createChannel(channel);

然后,我创建通知

const notification = new firebase.notifications.Notification()
                .setNotificationId('notificationId')
                .setTitle('Some notification')
                .setBody('Some body')

                notification.android.setSmallIcon('ic_launcher');
                notification.android.setLargeIcon('ic_launcher');
                notification.android.setChannelId('my_channel_id');

                notification.android.addAction(new firebase.notifications.Android.Action("answer", "ic_launcher", "Open"))

                notification.android.setColorized(true)
                notification.android.setColor('#00a8ff')
                notification.android.setOnlyAlertOnce(true)
                notification.android.setPriority(firebase.notifications.Android.Priority.Max)
                notification.android.setVibrate([400, 800, 600, 800, 800, 800, 1000]);

                firebase.notifications().displayNotification(notification);

以默认声音显示通知。 mp3文件位于/ android / app / src / main / res / raw /。它始终播放默认的通知“ bling”声音。

控制台中未显示任何错误。

adb logcat表示类似这样的内容,但我不确定它们是否与此有关:

  

02-22 21:20:30.848 4916 4916 D EdgeLightingManager:   showForNotification:isInteractive = true,isHeadUp = true,color = 0,sbn   = StatusBarNotification(pkg = com.my user = UserHandle {0} id = 788267878 tag = null key = 0 | com.my | 788267878 | null | 10188:   通知(channel = my_channel_id pri = 2 contentView = null振动= null   声音=空默认值= 0x0标志= 0x8颜色= 0xff00a8ff操作= 1 = 0   vis = PRIVATE semFlags = 0x0 semPriority = 0 semMissedCount = 0))

这些设置位于AndroidManifest.xml

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

我检查了手机设置,所有声音都打开并且启用了振动。

所以,应该我的代码可以工作吗?谢谢!

顺便说一句,我在iOS上也听不到声音,但是我没有使用Firebase:)

2 个答案:

答案 0 :(得分:0)

您的问题可能是您没有重新分配通知对象。例如:

notification = notification.android.setVibrate([300]);

否则,您只是将其设置在从未使用过的新对象上。

答案 1 :(得分:0)

关于振动,这对我有用

.android.setVibrate([1000, 1000])
.android.setDefaults([firebase.notifications.Android.Defaults.Vibrate])