---
schema_version: "1"
id: 6b1cee1e3b5eaa063513784a5fe022e27e646714f578c0739877d2dc1de91479
title: Marketing Cloud Mobile App Messaging SDK
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud-mobilepush/engagement_sdk/references/flutter-hybrid/flutter-marketing-cloud-mobile-app-messaging-sdk.md
canonical_url: https://developer.salesforce.com/docs/marketing/mobile-unified-sdk/references/engagement-mobile-sdk-reference/flutter-marketing-cloud-mobile-app-messaging-sdk.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 7452e71da99363ab0543ed6fd2ee1a89ffba8dcaff72c5824e428ae3449e04c7
products:
  - Salesforce Engagement SDK
---
# Marketing Cloud Mobile App Messaging SDK

This section provides API reference details for the Marketing Cloud Next (Mobile App Messaging) SDK module in the Flutter unified plugin.

## getDeviceId

Returns the device ID that Marketing Cloud Next uses to identify the device.

### Syntax

```dart
MobileAppMessaging.getDeviceId();
```

### Returns

- `Future<String?>` - A future that resolves with the device ID, or `null`.

### Example

```dart
import 'package:sfmc_mobileappmessaging/sfmc_mobileappmessaging.dart';

await MobileAppMessaging.requestSdk();
final deviceId = await MobileAppMessaging.getDeviceId();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.registration/-registration-manager/get-device-id.html)
- [iOS SDK Reference](https://developer.salesforce.com/docs/marketing/mobile-unified-sdk/references/engagement-mobile-sdk-reference/%3Chttps://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc(cs)SFMobileAppMessaging(im)deviceIdentifier>)

## enableAnalytics

Enables analytics for Marketing Cloud Next.

### Syntax

```dart
MobileAppMessaging.enableAnalytics();
```

### Returns

- `Future<void>`

### Example

```dart
import 'package:sfmc_mobileappmessaging/sfmc_mobileappmessaging.dart';

await MobileAppMessaging.requestSdk();
await MobileAppMessaging.enableAnalytics();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.analytics/-analytics-manager/enable-analytics.html)
- [iOS SDK Reference](https://developer.salesforce.com/docs/marketing/mobile-unified-sdk/references/engagement-mobile-sdk-reference/%3Chttps://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc(cs)SFMobileAppMessaging(im)setAnalyticsEnabled:>)

## disableAnalytics

Disables analytics for Marketing Cloud Next.

### Syntax

```dart
MobileAppMessaging.disableAnalytics();
```

### Returns

- `Future<void>`

### Example

```dart
import 'package:sfmc_mobileappmessaging/sfmc_mobileappmessaging.dart';

await MobileAppMessaging.requestSdk();
await MobileAppMessaging.disableAnalytics();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.analytics/-analytics-manager/disable-analytics.html)
- [iOS SDK Reference](https://developer.salesforce.com/docs/marketing/mobile-unified-sdk/references/engagement-mobile-sdk-reference/%3Chttps://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc(cs)SFMobileAppMessaging(im)setAnalyticsEnabled:>)

## isAnalyticsEnabled

Checks whether analytics is enabled for Marketing Cloud Next.

### Syntax

```dart
MobileAppMessaging.isAnalyticsEnabled();
```

### Returns

- `Future<bool>` - A future that resolves with whether analytics is enabled.

### Example

```dart
import 'package:sfmc_mobileappmessaging/sfmc_mobileappmessaging.dart';

await MobileAppMessaging.requestSdk();
final enabled = await MobileAppMessaging.isAnalyticsEnabled();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.analytics/-analytics-manager/are-analytics-enabled.html)
- [iOS SDK Reference](https://developer.salesforce.com/docs/marketing/mobile-unified-sdk/references/engagement-mobile-sdk-reference/%3Chttps://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc(cs)SFMobileAppMessaging(im)isAnalyticsEnabled>)

## setRegistrationCallback

Registers a callback to receive registration change events from the SDK.

### Syntax

```dart
MobileAppMessaging.setRegistrationCallback();
```

### Returns

- `Future<void>`

### Example

```dart
import 'package:sfmc_mobileappmessaging/sfmc_mobileappmessaging.dart';

await MobileAppMessaging.requestSdk();
await MobileAppMessaging.setRegistrationCallback();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.registration/-registration-manager/register-for-registration-events.html)
- [iOS SDK Reference](https://developer.salesforce.com/docs/marketing/mobile-unified-sdk/references/engagement-mobile-sdk-reference/%3Chttps://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc(cs)SFMobileAppMessaging(im)setRegistrationCallback:>)

## unsetRegistrationCallback

Unregisters the registration change callback.

### Syntax

```dart
MobileAppMessaging.unsetRegistrationCallback();
```

### Returns

- `Future<void>`

### Example

```dart
import 'package:sfmc_mobileappmessaging/sfmc_mobileappmessaging.dart';

await MobileAppMessaging.requestSdk();
await MobileAppMessaging.unsetRegistrationCallback();
```

### See Also

- [Android SDK Reference](https://salesforce-marketingcloud.github.io/MarketingCloudSDK-Android/javadocs/SFMCSdk/11.0/mobileappmessaging/com.salesforce.marketingcloud.mobileappmessaging.registration/-registration-manager/unregister-for-registration-events.html)
- [iOS SDK Reference](https://developer.salesforce.com/docs/marketing/mobile-unified-sdk/references/engagement-mobile-sdk-reference/%3Chttps://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledocs/MAMSdk/2.0/Classes/MobileAppMessaging.html#/c:@CM@MobileAppMessagingSDK@objc(cs)SFMobileAppMessaging(im)unsetRegistrationCallback>)

## registrationEvents

A broadcast stream of registration events. Emits a map of registration data when the registration changes.

### Syntax

```dart
MobileAppMessaging.registrationEvents;
```

### Returns

- `Stream<Map<String, dynamic>>` - A broadcast stream that emits a map of registration data on every registration change.

### Example

```dart
import 'package:sfmc_mobileappmessaging/sfmc_mobileappmessaging.dart';

await MobileAppMessaging.requestSdk();
MobileAppMessaging.registrationEvents.listen((event) {
  print('Registration changed: $event');
});
```
