Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

Initializing the SDK

Info

It is recommended to call init() method in Application class. Please, do not forget to define the Application class in AndroidManifest.xml file with android:name attribute under <application tag.

init() method has 4 mandatory parameters. You can initialize the SDK as shown below:

Kotlin

Code Block
languagekotlin
RelatedDigital.init(
  context = context,
  organizationId = "organization ID value",
  profileId = "profile ID value",
  dataSource = "data source value"
)

Java

Code Block
languagejava
RelatedDigital.init(
  context,
  "organization ID value",
  "profile ID value",
  "data source value"
);

You can reach this information on RMC panel.

...

Enabling the modules that will be used

RelatedDigital SDK consists of 3 different modules:

  • Push Notification Module

  • In-App Notification Module

  • Geofencing Module

It is required to enable the modules that are going to be used as shown below:

Info

It is recommended to enable the modules in Application class. You can find an example Application class that initializes the SDK and enables the all modules below.

AndroidManifest.xml

Code Block
languagexml
<application
  android:name=".MainApplication"

Kotlin

Code Block
languagekotlin
class MainApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        // Init the SDK
        RelatedDigital.init(
                context = context,
                organizationId = "organizationIdValue",
                profileId = "profileIdValue",
                dataSource = "dataSourceValue")

        // Enable In-App Notification Module
        RelatedDigital.setIsInAppNotificationEnabled(
            context = context,
            isInAppNotificationEnabled = true
        )

        // Enable Push Notification Module
        if(GoogleUtils.checkPlayService(this)) {
            getFirebaseToken()
        } else {
            getHuaweiToken()
        }

        // Enable Geofencing Module
        RelatedDigital.setIsGeofenceEnabled(
            context = context,
            isGeofenceEnabled = true
        )
    }

    private fun getFirebaseToken(){
        FirebaseMessaging.getInstance().token
            .addOnCompleteListener(OnCompleteListener { task ->
                if (!task.isSuccessful) {
                    Log.e("Firebase Token : ", "Getting the token failed!!!")
                    return@OnCompleteListener
                }
                val token = task.result

                // Enable Push Notification Module
                RelatedDigital.setIsPushNotificationEnabled(
                    context = context,
                    isPushNotificationEnabled = true,
                    googleAppAlias = "googleAppAliasValue",
                    huaweiAppAlias = "huaweiAppAliasValue",
                    token = token
                )
            })
    }

    private fun getHuaweiToken() {
        object : Thread() {
            override fun run() {
                try {
                    val appId = AGConnectOptionsBuilder().build(applicationContext)
                        .getString("client/app_id")
                    val token = HmsInstanceId.getInstance(applicationContext).getToken(appId, "HCM")
                    if (TextUtils.isEmpty(token) || token == null) {
                        Log.e("Huawei Token : ", "Empty token!!!")
                        return
                    }
                    Log.i("Huawei Token", "" + token)

                    // Enable Push Notification Module
                    RelatedDigital.setIsPushNotificationEnabled(
                        context = context,
                        isPushNotificationEnabled = true,
                        googleAppAlias = "googleAppAliasValue",
                        huaweiAppAlias = "huaweiAppAliasValue",
                        token = token
                    )
                } catch (e: ApiException) {
                    Log.e("Huawei Token", "Getting the token failed! $e")
                }
            }
        }.start()
    }
}

Java

Code Block
languagejava
public class MainApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // Init the SDK
        RelatedDigital.init(
                context,
                "organizationIdValue",
                "profileIdValue",
                "dataSourceValue");

        // Enable In-App Notification Module
        RelatedDigital.setIsInAppNotificationEnabled(
            context,
            true
        );

        // Enable Push Notification Module
        if(GoogleUtils.checkPlayService(this)) {
            getFirebaseToken();
        } else {
            getHuaweiToken();
        }

        // Enable Geofencing Module
        RelatedDigital.setIsGeofenceEnabled(
            context,
            true
        );
    }

    private void getFirebaseToken(){
        FirebaseMessaging.getInstance().token
            .addOnCompleteListener(new OnCompleteListener<String>() {
              @Override
              public void onComplete(@NonNull Task<String> task) {
                if (!task.isSuccessful()) {
                  Log.e("Firebase Token : ", "Getting the token failed!!!");
                  return;
                }
                String token = task.getResult();
                // Enable Push Notification Module
                RelatedDigital.setIsPushNotificationEnabled(
                    context,
                    true,
                    "googleAppAliasValue",
                    "huaweiAppAliasValue",
                    token
                );
              }
            });
    }

    private void getHuaweiToken() {
        new Thread() {
            @Override
            public void run() {
                try {
                    String appId = AGConnectServicesConfig.fromContext(getApplicationContext()).getString("client/app_id");
                    final String token = HmsInstanceId.getInstance(getApplicationContext()).getToken(appId, "HCM");

                    // Enable Push Notification Module
                    RelatedDigital.setIsPushNotificationEnabled(
                        context,
                        true,
                        "googleAppAliasValue",
                        "huaweiAppAliasValue",
                        token);
                } catch (ApiException e) {
                    Log.e("Huawei Token", "Getting the token failed! " + e);
                }
            }
        }.start();
    }
}

Example Application

RelatedDigital Example Application