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.FirebaseMessagingService
Service 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:
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 int
NOTIFICATION_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 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.-
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:
onMessageReceived
in classcom.google.firebase.messaging.FirebaseMessagingService
-
onNewToken
public void onNewToken(java.lang.String token)
- Overrides:
onNewToken
in 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 overrideMixpanelPushNotification
to 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)
-
-