彩票网站开发教程,全国家装官网,快速排名seo,网站的优化是什么意思Cloud Messaging 1、清单文件配置 a、#xff08;可选#xff09;一项扩展 FirebaseMessagingService 的服务。除了接收通知外#xff0c;如果您还希望在后台应用中进行消息处理#xff0c;则必须添加此服务。例如#xff0c;您需要在前台应用中接收通知、接收数据载荷以及…Cloud Messaging 1、清单文件配置 a、可选一项扩展 FirebaseMessagingService 的服务。除了接收通知外如果您还希望在后台应用中进行消息处理则必须添加此服务。例如您需要在前台应用中接收通知、接收数据载荷以及发送上行消息等就必须扩展此服务
serviceandroid:name.java.MyFirebaseMessagingServiceandroid:exportedfalseintent-filteraction android:namecom.google.firebase.MESSAGING_EVENT //intent-filter
/service b、可选应用组件中用于设置默认通知图标和颜色的元数据元素。如果传入的消息未明确设置图标和颜色Android 就会使用这些值。
meta-dataandroid:namecom.google.firebase.messaging.default_notification_iconandroid:resourcedrawable/ic_stat_ic_notification /
meta-dataandroid:namecom.google.firebase.messaging.default_notification_colorandroid:resourcecolor/colorAccent / c、可选从 Android 8.0API 级别 26和更高版本开始我们支持并推荐使用通知渠道。FCM 提供具有基本设置的默认通知渠道。如果您希望创建和使用自己的默认渠道请将 default_notification_channel_id 设置为您的通知渠道对象的 ID如下所示只要传入的消息未明确设置通知渠道FCM 就会使用此值。如需了解详情请参阅管理通知渠道。
meta-dataandroid:namecom.google.firebase.messaging.default_notification_channel_idandroid:valuestring/default_notification_channel_id /
以上三点都不配置的情况下也能收到消息。如果需要在收到通知后点击消息做特殊处理就需要实现第一点。
2、获取设备注册令牌
初次启动您的应用时FCM SDK 会为客户端应用实例生成一个注册令牌 (registration token)。如果您希望指定单一目标设备或者创建设备组需要扩展 FirebaseMessagingService 并重写 onNewToken 来获取此令牌。
因为令牌可能会在初始启动后轮替所以我们强烈建议您检索最近更新的注册令牌。
注册令牌可能会在发生下列情况时更改
应用在新设备上恢复用户卸载/重新安装应用用户清除应用数据
如果需要检索当前令牌请调用 FirebaseMessaging.getInstance().getToken()。
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -if (!task.isSuccessful) {Log.w(TAG, Fetching FCM registration token failed, task.exception)returnOnCompleteListener}// Get new FCM registration tokenval token task.result//把当前获取的注册token传给自己服务器
})
监控令牌的生成
每当生成新令牌时都会触发 onNewToken 回调函数。
/*** 需要继承FirebaseMessagingService重新onNewToken方法*/
override fun onNewToken(token: String) {Log.d(TAG, Refreshed token: $token)//把当前token传给自己服务器sendRegistrationToServer(token)
}
上面的令牌需要调用后端接口传给自己服务器如果只是需要记录安装时一次可以只需要使用检索一次就好不需要实时监听令牌的变化。
在所有的依赖Google服务的功能都应该调用 GoogleApiAvailability.makeGooglePlayServicesAvailable()检查如果没有就需要引导用户下载