【发布时间】:2020-09-13 22:37:30
【问题描述】:
我想使用 java 构建一个 android 应用程序。我将使用 GCM 发送推送通知。但是,我不确定我们是否可以使用推送通知作为触发器。所以我想做这样的事情:
如果收到来自另一台设备的推送通知, 使布尔值为真, 使用此布尔值并触发操作。
我只是想知道这是否可能。我还没有开始写代码。谢谢。
【问题讨论】:
标签: java android push-notification google-cloud-messaging
我想使用 java 构建一个 android 应用程序。我将使用 GCM 发送推送通知。但是,我不确定我们是否可以使用推送通知作为触发器。所以我想做这样的事情:
如果收到来自另一台设备的推送通知, 使布尔值为真, 使用此布尔值并触发操作。
我只是想知道这是否可能。我还没有开始写代码。谢谢。
【问题讨论】:
标签: java android push-notification google-cloud-messaging
是的,您应该使用 FCM 作为Google deprecated GCM。
使用 FCM,您可以接收通知并在您的设备中触发操作。
您需要在清单中注册服务:
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
然后创建扩展FirebaseMessagingService 的类MyFirebaseMessagingService 并覆盖onMessageReceived 方法:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
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());
}
// Trigger any actions that you want.
}
更多信息,请查看official documentation。
【讨论】: