Skip to content

How to activate a profile

To change the active configuration profile using SDK, call changeConfigProfile() on your PgManager reference with the following parameters:

  • PgCommand object holding the PgConfigProfile and optional PgCommandParams. The containing PgConfigProfile must have a set profile name (profileId).
  • The object implementing IPgConfigProfileCallback. After the profile is successfully set (or in case of any errors), the IPgConfigProfileCallback is called with the relevant information.

You can also broadcast an Intent with the following data:

  • Action: com.proglove.api.CHANGE_CONFIG_PROFILE
  • Extra: String in com.proglove.api.extra.CONFIG_PROFILE_ID

Activation is successful if the profile with the specified ID exists in the configuration file.

Example code:

val profileName: String = "myProfileToSet"

pgManager.changeConfigProfile(
    PgCommand(PgConfigProfile(profileName)),
    object : IPgConfigProfileCallback {
        override fun onConfigProfileChanged(profile: PgConfigProfile) {
            runOnUiThread {
                Toast.makeText(
                    applicationContext,
                    "${profile.profileId} set successfully",
                    Toast.LENGTH_LONG
                ).show()
            }
        }

        override fun onError(error: PgError) {
            runOnUiThread {
                Toast.makeText(
                    applicationContext,
                    "Failed to set $profileName - $error",
                    Toast.LENGTH_LONG
                ).show()
            }
        }
    }
)
val profileName: String = "myProfileToSet"

val intent = Intent()
intent.setAction("com.proglove.api.CHANGE_CONFIG_PROFILE")
intent.putExtra("com.proglove.api.extra.CONFIG_PROFILE_ID", profileName)
sendBroadcast(intent)

Note:

  • Explicit activation is only successful if the profile with the specified ID exists in the configuration file. Trying to replace an active profile with a non-existing profile ID using the SDK, returns an error. When changing it via Intent, there is no possibility to return an error.
  • Profiles can only be changed when Insight Mobile is running.