在睡眠或背景中无需用户操作时,运行Firebase Cloud Messaging onmessageceeceed



我在我的应用程序中实现了firebase云消息传递,以在被覆盖的OnMessagereceived函数中执行代码。当应用在前景时,它可以正常工作,但在闲置/睡眠或背景中不行。我确实在通知托盘中收到消息,但代码不运行。我知道,当用户单击TREY中的通知时,可以设置操作以运行代码,但我希望它能在没有任何用户交互的情况下运行。有没有办法让它运行,或者有更好的解决方案来fcm。

最终目标是从服务器(现在通过FCM令牌完成(ping设备,然后立即使设备上传设备位置。有更好的方法吗?

这是我的FCM代码。

import android.content.Intent;
import android.util.Log;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import java.util.Map;
import static android.content.ContentValues.TAG;
public class FMS extends FirebaseMessagingService {
    public FMS() {
    }
    public static final String INTENT_FILTER = "Remote_Execute";
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        Intent intent = new Intent(INTENT_FILTER);
        sendBroadcast(intent);
        Map<String, String> data = remoteMessage.getData();
        Log.d(TAG, "From: " + remoteMessage.getFrom());
        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {
            Log.d(TAG, "Message data payload: " + remoteMessage.getData());
        }
        // Check if message contains a notification payload.
        if (remoteMessage.getNotification() != null) {
            Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
        }
    }
}

请参阅firebase云消息传递文档中的 data messagesnotification messages之间的差异

https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

相关内容

  • 没有找到相关文章

最新更新