Package com.mixpanel.android.mpmetrics
Class MixpanelFCMMessagingService
- java.lang.Object
-
- android.content.Context
-
- android.content.ContextWrapper
-
- android.app.Service
-
- com.google.firebase.iid.zzb
-
- com.google.firebase.messaging.FirebaseMessagingService
-
- com.mixpanel.android.mpmetrics.MixpanelFCMMessagingService
-
- All Implemented Interfaces:
android.content.ComponentCallbacks,android.content.ComponentCallbacks2
public class MixpanelFCMMessagingService extends com.google.firebase.messaging.FirebaseMessagingServiceService for handling Firebase Cloud Messaging callbacks.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:
And finally add a clause like the following to the <application> tag of your AndroidManifest.xml.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'<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");
-
-
Field Summary
Fields Modifier and Type Field Description protected static intNOTIFICATION_ID-
Fields inherited from class android.app.Service
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_REMOVE
-
Fields inherited from class android.content.Context
ACCESSIBILITY_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_INCLUDE_CAPABILITIES, BIND_NOT_FOREGROUND, BIND_NOT_PERCEPTIBLE, BIND_WAIVE_PRIORITY, BIOMETRIC_SERVICE, BLOB_STORE_SERVICE, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_DIAGNOSTICS_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FILE_INTEGRITY_SERVICE, FINGERPRINT_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_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, ROLE_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_IMS_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, VPN_MANAGEMENT_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
-
-
Constructor Summary
Constructors Constructor Description MixpanelFCMMessagingService()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidaddToken(java.lang.String token)Only use this method if you have implemented your own custom FirebaseMessagingService.protected voidcancelNotification(android.os.Bundle extras, android.app.NotificationManager notificationManager)protected voidonMessageReceived(android.content.Context context, android.content.Intent intent)Util method to let subclasses customize the payload through the push notification intent.voidonMessageReceived(com.google.firebase.messaging.RemoteMessage remoteMessage)voidonNewToken(java.lang.String token)static voidshowPushNotification(android.content.Context context, android.content.Intent messageIntent)Only use this method if you have implemented your own custom FirebaseMessagingService.static voidshowPushNotification(android.content.Context context, android.content.Intent messageIntent, MixpanelPushNotification mixpanelPushNotification)Only use this method if you have implemented your own custom FirebaseMessagingService.-
Methods inherited from class com.google.firebase.messaging.FirebaseMessagingService
onDeletedMessages, onMessageSent, onSendError, zzb, zzc, zzd
-
Methods inherited from class android.app.Service
attachBaseContext, dump, getApplication, getForegroundServiceType, onConfigurationChanged, onCreate, onDestroy, onLowMemory, onRebind, onStart, onTaskRemoved, onTrimMemory, onUnbind, startForeground, startForeground, stopForeground, stopForeground, stopSelf, stopSelf, stopSelfResult
-
Methods inherited from class android.content.ContextWrapper
bindIsolatedService, bindService, bindService, bindServiceAsUser, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createAttributionContext, createConfigurationContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, createWindowContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAssets, getAttributionTag, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getDisplay, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getOpPackageName, 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, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setTheme, setWallpaper, setWallpaper, startActivities, startActivities, startActivity, startActivity, startForegroundService, startInstrumentation, startIntentSender, startIntentSender, startService, stopService, unbindService, unregisterReceiver, updateServiceGroup
-
Methods inherited from class android.content.Context
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, sendBroadcastWithMultiplePermissions, unregisterComponentCallbacks
-
-
-
-
Field Detail
-
NOTIFICATION_ID
protected static final int NOTIFICATION_ID
- See Also:
- Constant Field Values
-
-
Method Detail
-
onMessageReceived
public void onMessageReceived(com.google.firebase.messaging.RemoteMessage remoteMessage)
- Overrides:
onMessageReceivedin classcom.google.firebase.messaging.FirebaseMessagingService
-
onNewToken
public void onNewToken(java.lang.String token)
- Overrides:
onNewTokenin classcom.google.firebase.messaging.FirebaseMessagingService
-
onMessageReceived
protected void onMessageReceived(android.content.Context context, android.content.Intent intent)Util method to let subclasses customize the payload through the push notification intent.- Parameters:
context- The application contextintent- Push payload intent. Could be modified before calling super() from a sub-class.
-
addToken
public static void addToken(java.lang.String token)
Only use this method if you have implemented your own custom FirebaseMessagingService. This is useful when you use multiple push providers. This method should be called from a onNewToken callback. It adds a new FCM token to a Mixpanel people profile.- Parameters:
token- Firebase Cloud Messaging token to be added to the people profile.
-
showPushNotification
public static void showPushNotification(android.content.Context context, android.content.Intent messageIntent)Only use this method if you have implemented your own custom FirebaseMessagingService. This is useful when you use multiple push providers. Displays a Mixpanel push notification on the device.- Parameters:
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. SeeshowPushNotification(Context, Intent)
-
showPushNotification
public 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. This is useful if you need to overrideMixpanelPushNotificationto further customize your Mixpanel push notification. Displays a Mixpanel push notification on the device.- Parameters:
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. SeeshowPushNotification(Context, Intent)mixpanelPushNotification- A customized MixpanelPushNotification object.
-
cancelNotification
protected void cancelNotification(android.os.Bundle extras, android.app.NotificationManager notificationManager)
-
-