public class MixpanelFCMMessagingService
extends com.google.firebase.messaging.FirebaseMessagingService
You can use FirebaseMessagingService to report Firebase Cloud Messaging registration identifiers to Mixpanel, and to display incoming notifications from Mixpanel to the device status bar. This is the simplest way to get up and running with notifications from Mixpanel.
To enable FCM in your application, place your google-services.json file in your Android project root directory, add firebase messaging as a dependency in your gradle file:
buildscript {
...
dependencies {
classpath 'com.google.gms:google-services:4.1.0'
...
}
}
dependencies {
implementation 'com.google.firebase:firebase-messaging:17.3.4'
...
}
apply plugin: 'com.google.gms.google-services'
And finally add a clause like the following
to the <application> tag of your AndroidManifest.xml.
<service
android:name="com.mixpanel.android.mpmetrics.MixpanelFCMMessagingService"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
Once the FirebaseMessagingService is configured, the only thing you have to do to
get set up Mixpanel messages is call MixpanelAPI.People.identify(String)
with a distinct id for your user.
MixpanelAPI.People people = mMixpanelAPI.getPeople();
people.identify("A USER DISTINCT ID");
| Modifier and Type | Field and Description |
|---|---|
protected static int |
NOTIFICATION_ID |
START_CONTINUATION_MASK, START_FLAG_REDELIVERY, START_FLAG_RETRY, START_NOT_STICKY, START_REDELIVER_INTENT, START_STICKY, START_STICKY_COMPATIBILITY, STOP_FOREGROUND_DETACH, STOP_FOREGROUND_REMOVEACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_NOT_FOREGROUND, BIND_WAIVE_PRIORITY, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, FINGERPRINT_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_PROJECTION_SERVICE, MEDIA_ROUTER_SERVICE, MEDIA_SESSION_SERVICE, MIDI_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_NO_LOCALIZED_COLLATORS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NETWORK_STATS_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_CLASSIFICATION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_SERVICE, WINDOW_SERVICE| Constructor and Description |
|---|
MixpanelFCMMessagingService() |
| Modifier and Type | Method and Description |
|---|---|
static void |
addToken(java.lang.String token)
Only use this method if you have implemented your own custom FirebaseMessagingService.
|
protected void |
cancelNotification(android.os.Bundle extras,
android.app.NotificationManager notificationManager) |
protected void |
onMessageReceived(android.content.Context context,
android.content.Intent intent)
Util method to let subclasses customize the payload through the push notification intent.
|
void |
onMessageReceived(com.google.firebase.messaging.RemoteMessage remoteMessage) |
void |
onNewToken(java.lang.String token) |
static void |
showPushNotification(android.content.Context context,
android.content.Intent messageIntent)
Only use this method if you have implemented your own custom FirebaseMessagingService.
|
static void |
showPushNotification(android.content.Context context,
android.content.Intent messageIntent,
MixpanelPushNotification mixpanelPushNotification)
Only use this method if you have implemented your own custom FirebaseMessagingService.
|
onDeletedMessages, onMessageSent, onSendError, zzb, zzc, zzddump, getApplication, onConfigurationChanged, onCreate, onDestroy, onLowMemory, onRebind, onStart, onTaskRemoved, onTrimMemory, onUnbind, startForeground, stopForeground, stopForeground, stopSelf, stopSelf, stopSelfResultattachBaseContext, bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAssets, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getResources, getSharedPreferences, getSystemService, getSystemServiceName, getTheme, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setTheme, setWallpaper, setWallpaper, startActivities, startActivities, startActivity, startActivity, startForegroundService, startInstrumentation, startIntentSender, startIntentSender, startService, stopService, unbindService, unregisterReceiverprotected static final int NOTIFICATION_ID
public void onMessageReceived(com.google.firebase.messaging.RemoteMessage remoteMessage)
onMessageReceived in class com.google.firebase.messaging.FirebaseMessagingServicepublic void onNewToken(java.lang.String token)
onNewToken in class com.google.firebase.messaging.FirebaseMessagingServiceprotected void onMessageReceived(android.content.Context context,
android.content.Intent intent)
context - The application contextintent - Push payload intent. Could be modified before calling super() from a sub-class.public static void addToken(java.lang.String token)
token - Firebase Cloud Messaging token to be added to the people profile.public static void showPushNotification(android.content.Context context,
android.content.Intent messageIntent)
context - The application context you are trackingmessageIntent - Intent that bundles the data used to build a notification. If the intent
is not valid, the notification will not be shown.
See showPushNotification(Context, Intent)public static void showPushNotification(android.content.Context context,
android.content.Intent messageIntent,
MixpanelPushNotification mixpanelPushNotification)
MixpanelPushNotification to further customize your
Mixpanel push notification.
Displays a Mixpanel push notification on the device.context - The application context you are trackingmessageIntent - Intent that bundles the data used to build a notification. If the intent
is not valid, the notification will not be shown.
See showPushNotification(Context, Intent)mixpanelPushNotification - A customized MixpanelPushNotification object.protected void cancelNotification(android.os.Bundle extras,
android.app.NotificationManager notificationManager)