Android Firebase 推送通知实现指南:步骤、代码示例
要使用 Firebase 向 Android 发送消息推送,需要进行以下步骤:
-
在 Firebase 控制台中创建一个新的项目,并在项目中添加 Android 应用。
-
在 Android 应用中添加 Firebase SDK,并将 'google-services.json' 文件放在应用的根目录下。
-
在应用的 'build.gradle' 文件中添加以下依赖项:
dependencies {
implementation 'com.google.firebase:firebase-messaging:20.2.4'
}
- 在应用的 'AndroidManifest.xml' 文件中添加以下权限:
<uses-permission android:name='android.permission.INTERNET' />
<uses-permission android:name='android.permission.WAKE_LOCK' />
- 在应用的 'AndroidManifest.xml' 文件中添加以下服务:
<service
android:name='.MyFirebaseMessagingService'
android:exported='false'>
<intent-filter>
<action android:name='com.google.firebase.MESSAGING_EVENT' />
</intent-filter>
</service>
- 创建一个继承自 'FirebaseMessagingService' 的服务类 'MyFirebaseMessagingService',并重写 'onMessageReceived' 方法来处理接收到的消息:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = 'MyFirebaseMessagingSvc';
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Log.d(TAG, 'From: ' + remoteMessage.getFrom());
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, 'Message data payload: ' + remoteMessage.getData());
}
if (remoteMessage.getNotification() != null) {
Log.d(TAG, 'Message Notification Body: ' + remoteMessage.getNotification().getBody());
}
}
}
-
在 Firebase 控制台中创建一个新的通知,并指定要发送通知的目标 Android 应用。
-
使用 Firebase Cloud Messaging API 或 Firebase 控制台来发送通知。
示例代码:
MyFirebaseMessagingService.java
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = 'MyFirebaseMessagingSvc';
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Log.d(TAG, 'From: ' + remoteMessage.getFrom());
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, 'Message data payload: ' + remoteMessage.getData());
}
if (remoteMessage.getNotification() != null) {
Log.d(TAG, 'Message Notification Body: ' + remoteMessage.getNotification().getBody());
}
}
}
AndroidManifest.xml
<manifest xmlns:android='http://schemas.android.com/apk/res/android'
package='com.example.myapplication'>
<uses-permission android:name='android.permission.INTERNET' />
<uses-permission android:name='android.permission.WAKE_LOCK' />
<application
android:name='com.example.myapplication.MyApplication'
android:icon='@mipmap/ic_launcher'
android:label='@string/app_name'
android:theme='@style/AppTheme'>
<service
android:name='.MyFirebaseMessagingService'
android:exported='false'>
<intent-filter>
<action android:name='com.google.firebase.MESSAGING_EVENT' />
</intent-filter>
</service>
<activity
android:name='.MainActivity'
android:label='@string/app_name'
android:theme='@style/AppTheme.NoActionBar'>
<intent-filter>
<action android:name='android.intent.action.MAIN' />
<category android:name='android.intent.category.LAUNCHER' />
</intent-filter>
</activity>
</application>
</manifest>
原文地址: https://www.cveoy.top/t/topic/nVF1 著作权归作者所有。请勿转载和采集!