推送通知震动在手机锁屏或应用未打开时无法正常工作

3
应用程序的推送通知总是被发送的,这不是问题。问题在于,如果应用程序没有打开或者手机锁屏了,那么当其接收到新的应用程序通知时,手机不会震动。是否有一种方法可以使手机在收到通知后即使处于锁屏或未打开应用程序的状态下也会震动?可能存在什么问题?从我找到的信息来看,使用以下代码创建通知:
public class NotifyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager.notify(
                remoteMessage.getMessageId(),
                1,
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_paperplane)
                        .setContentTitle(remoteMessage.getNotification().getTitle())
                        .setContentText(remoteMessage.getNotification().getBody())
                        .setVibrate(new long[] { 150, 300, 150, 600})
                        .setAutoCancel(true)
                        .build());
        super.onMessageReceived(remoteMessage);
    }
}

清单文件包含震动和唤醒锁定权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" /
2个回答

4
在通知负载中添加以下内容:
"notification":{
    "sound":"default"
}

如果不是静音模式,它将播放声音,如果是震动模式,则会震动。


运行得非常完美,感谢您的帮助。有没有办法让它同时播放声音和震动? - Cctest

0

firebase数据消息和firebase通知消息之间有很大的区别。

来自文档:

当应用程序在后台运行时,通知消息将传递到通知托盘。对于前台应用程序,消息由以下回调处理:
onMessageReceived() 在Android上

而对于数据消息

在Android上,客户端应用程序在onMessageReceived()中接收数据消息

这意味着您无法处理在后台接收到的通知消息。我会发送一个只包含标题和消息并在您的应用程序中手动解析的数据消息。这样可以启用振动。

或者,如果使用firebase控制台,则可以在发送消息时在扩展选项中启用“声音”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接