CleverTap Android SDK

Overview

CleverTap Android SDKs

Build Status Download

👋 Introduction

(Back to top)

The CleverTap Android SDK for Mobile Customer Engagement and Analytics solutions

CleverTap brings together real-time user insights, an advanced segmentation engine, and easy-to-use marketing tools in one mobile marketing platform — giving your team the power to create amazing experiences that deepen customer relationships. Our intelligent mobile marketing platform provides the insights you need to keep users engaged and drive long-term retention and growth.

For more information check out our website and documentation.

To get started, sign up here

🎉 Installation

(Back to top)

We publish the SDK to mavenCentral as an AAR file. Just declare it as dependency in your build.gradle file.

    dependencies {      
         implementation "com.clevertap.android:clevertap-android-sdk:4.1.0"
    }

Alternatively, you can download and add the AAR file included in this repo in your Module libs directory and tell gradle to install it like this:

   dependencies {      
       implementation (name: "clevertap-android-sdk-4.1.0", ext: 'aar')
   }

📖 Dependencies

(Back to top)

Add the Firebase Messaging library and Android Support Library v4 as dependencies to your Module build.gradle file.

     dependencies {      
         implementation "com.clevertap.android:clevertap-android-sdk:4.1.0"
         implementation "androidx.core:core:1.3.0"
         implementation "com.google.firebase:firebase-messaging:20.2.4"
         implementation "com.google.android.gms:play-services-ads:19.4.0" // Required only if you enable Google ADID collection in the SDK (turned off by default).
         implementation "com.android.installreferrer:installreferrer:2.1" // Mandatory for v3.6.4 and above
     }

Also be sure to include the google-services.json classpath in your Project level build.gradle file:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.         
        
    buildscript {       
         repositories {      
             google()
             mavenCentral()       

             // if you are including the aar file manually in your Module libs directory add this:
             flatDir {
                dirs 'libs'
            }
        
         }       
         dependencies {      
             classpath "com.android.tools.build:gradle:4.0.1" 
             classpath "com.google.gms:google-services:4.3.3"        
        
             // NOTE: Do not place your application dependencies here; they belong       
             // in the individual module build.gradle files      
         }       
    }

Add your FCM generated google-services.json file to your project and add the following to the end of your build.gradle:

apply plugin: 'com.google.gms.google-services'

Interstitial InApp Notification templates support Audio and Video with the help of ExoPlayer. To enable Audio/Video in your Interstitial InApp Notifications, add the following dependencies in your build.gradle file :

    implementation "com.google.android.exoplayer:exoplayer:2.11.5"
    implementation "com.google.android.exoplayer:exoplayer-hls:2.11.5"
    implementation "com.google.android.exoplayer:exoplayer-ui:2.11.5"

Once you've updated your module build.gradle file, make sure you have specified mavenCentral() and google() as a repositories in your project build.gradle and then sync your project in File -> Sync Project with Gradle Files.

🎉 Integration

(Back to top)

Add Your CleverTap Account Credentials

Add the following inside the <application></application> tags of your AndroidManifest.xml:

<meta-data  
     android:name="CLEVERTAP_ACCOUNT_ID"  
     android:value="Your CleverTap Account ID"/>  
<meta-data  
     android:name="CLEVERTAP_TOKEN"  
     android:value="Your CleverTap Account Token"/>

Replace "Your CleverTap Account ID" and "Your CleverTap Account Token" with actual values from your CleverTap Dashboard -> Settings -> Integration -> Account ID, SDK's.

Setup the Lifecycle Callback - IMPORTANT

Add the android:name property to the <application> tag in your AndroidManifest.xml:

    <application
        android:label="@string/app_name"
        android:icon="@drawable/ic_launcher"
        android:name="com.clevertap.android.sdk.Application">

Note: If you've already got a custom Application class, call ActivityLifecycleCallback.register(this); before super.onCreate() in your custom Application class.

Note: The above step is extremely important and enables CleverTap to track notification opens, display in-app notifications, track deep links, and other important user behavior.

🚀 Initialization

(Back to top)

By default the library creates a shared default instance based on the Account ID and Account Token included in your AndroidManifest.xml. To access this default shared singleton instance in your code call -

CleverTapAPI.getDefaultInstance(context)
CleverTapAPI clevertap = CleverTapAPI.getDefaultInstance(getApplicationContext());

Creating multiple instances of the SDK

Starting with version 3.2.0 of the SDK, you can create additional CleverTap instances to send data to multiple CleverTap accounts from your app. To create an additional instance:

  • Create a CleverTapInstanceConfig object. This object can be created and configured as follows:
    CleverTapInstanceConfig clevertapAdditionalInstanceConfig =  CleverTapInstanceConfig.createInstance(context, "ADDITIONAL_CLEVERTAP_ACCOUNT_ID", "ADDITIONAL_CLEVERTAP_ACCOUNT_TOKEN");
    clevertapAdditionalInstanceConfig.setDebugLevel(CleverTapAPI.LogLevel.DEBUG); // default is CleverTapAPI.LogLevel.INFO
    clevertapAdditionalInstanceConfig.setAnalyticsOnly(true); // disables the user engagement features of the instance, default is false
    clevertapAdditionalInstanceConfig.useGoogleAdId(true); // enables the collection of the Google ADID by the instance, default is false
  • Then to create and subsequently access the additional CleverTap instance, call CleverTapAPI.instanceWithConfig with the CleverTapInstanceConfig object you created.
CleverTapAPI clevertapAdditionalInstance = CleverTapAPI.instanceWithConfig(clevertapAdditionalInstanceConfig);

Note: All configuration to the CleverTapInstanceConfig object must be done prior to calling CleverTapAPI.instanceWithConfig. Subsequent changes to the CleverTapInstanceConfig object will have no effect on the additional CleverTap instance created.

𝌡 Example Usage

(Back to top)

See the usage examples here. Also, see the example project, included with this repo.

See our full documentation here for more information on Events and Profile Tracking, Push Notifications, In-App messages, Install Referrer tracking and app personalization.

📍 CleverTap Geofence SDK

(Back to top)

CleverTap Android Geofence SDK provides Geofencing capabilities to CleverTap Android SDK by using the Play Services Location library. To find the integration steps for CleverTap Geofence SDK, click here

📲 CleverTap Xiaomi Push SDK

(Back to top)

CleverTap Xiaomi Push SDK provides an out of the box service to use the Xiaomi Push SDK. Find the integration steps for the CleverTap Xiaomi Push SDK here

📲 CleverTap Huawei Push SDK

(Back to top)

CleverTap Huawei Push SDK provides an out of the box service to use the Huawei Messaging Service. Find the integration steps for the CleverTap Huawei Push SDK here

📄 License

(Back to top) CleverTap Android SDK is MIT licensed, as found in the LICENSE file.

Comments
  • Migrate to androidx

    Migrate to androidx

    This sdk is still using the android support library, which is deprecated. Androidx has been out for quite a while now (over a year?). We'd like to remove jetifier from our app build process, but won't be able to until the sdks we use are on androidx.

    enhancement pending release 
    opened by calvarez-ov 23
  • [Targeting Android 12] Push notifications not appearing.

    [Targeting Android 12] Push notifications not appearing.

    Describe the bug

    Summary: CleverTap's PushProviders.triggerNotification() needs to declare whether the PendingIntent is mutable or not, otherwise notifications don't appear in an app targeting Android 12, on an Android 12 emulator/device.

    Details: We're following the documentation for custom push notification handling.

    We have our service as in the doc, except we added the android:exported="false" attribute to be compliant with android 12. We set it to "false" based on firebase documentation:

    <service
        android:exported="false"
        android:name="com.your.package.MyFcmMessageListenerService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    

    Our MyFcmMessageListenerService has this:

    class MyFcmMessageListenerService : FirebaseMessagingService() {
        override fun onMessageReceived(remoteMessage: RemoteMessage) {
            super.onMessageReceived(remoteMessage)
            if (remoteMessage.data.isNotEmpty()) {
                // If we're notified first, make sure clevertap is notified if it's meant for clevertap
                // https://support.clevertap.com/docs/android/custom-push-notifications-handling.html
                val extras = mapToExtras(remoteMessage.data)
                val info = CleverTapAPI.getNotificationInfo(extras)
                if (info.fromCleverTap) {
                    CleverTapAPI.createNotification(applicationContext, extras)
                } else {
                    // This is not the push you're looking for...
                }
            }
        }
    
    

    If we change our app to have targetSdkVersion and compileSdkVersion to 31, then we have the following problem:

    To Reproduce Steps to reproduce the behavior:

    1. Go to the CleverTap console
    2. Find your user
    3. Click on "Send push" next to the bell 🔔
    4. Fill out everything, including the notification channel, and send the push

    Expected behavior

    • Expected behavior: On the device, the notification appears
    • Actual behavior: On the device, the notification doesn't appear, and there's a warning in logcat about targeting Android 12

    Screenshots/Logs

    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z: Couldn't render notification:
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z: java.lang.IllegalArgumentException: lifeisbetteron.com.test: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z: Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at com.clevertap.android.sdk.pushnotification.PushProviders.triggerNotification(PushProviders.java:949)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at com.clevertap.android.sdk.pushnotification.PushProviders.access$200(PushProviders.java:73)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at com.clevertap.android.sdk.pushnotification.PushProviders$1.call(PushProviders.java:185)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at com.clevertap.android.sdk.pushnotification.PushProviders$1.call(PushProviders.java:154)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at com.clevertap.android.sdk.task.Task$1.run(Task.java:209)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at com.clevertap.android.sdk.task.PostAsyncSafelyExecutor$1.run(PostAsyncSafelyExecutor.java:45)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    10-11 17:28:26.506 14504 14611 D CleverTap:TEST-7KK-RW7-6Z5Z:   at java.lang.Thread.run(Thread.java:920)
    

    So: our service is being called, so there's no issue with the <service> declaration in the manifest. The issue appears to be with the PendingIntent missing the mutability flag. See the documentation below.

    Environment (please complete the following information):

    • Device: Android emulator
    • OS: Android 12
    • CleverTap SDK Version 4.2.0
    • Android Studio Version Arctic fox 2020.3.1 Patch 1
    • Android Gradle Plugin 7.0.2

    Additional context Here's Google documentation about supporting android 12, for PendingIntent: https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability

    Note: There's no issue, even on an Android 12 device/emulator, if our app continues to target android 11 (api level 30)

    enhancement 
    opened by calvarez-ov 22
  • App background Crash on Samsung devices with OS version 5, CleverTap Segment SDK

    App background Crash on Samsung devices with OS version 5, CleverTap Segment SDK

    Device Info Device: Samsung Android OS : 5 Type background Clevertap SDK : com.clevertap.android:clevertap-android-sdk:3.6.1 Segment integration : com.clevertap.android:clevertap-segment-android:+

    Stacktrace : Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=0; index=42375 at java.lang.reflect.ArtField.getNameNative(ArtField.java) at java.lang.reflect.ArtField.getName + 91(ArtField.java:91) at java.lang.reflect.Field.getName + 122(Field.java:122) at com.clevertap.android.sdk.ab_testing.uieditor.ResourceIds.readClassIds + 85(ResourceIds.java:85) at com.clevertap.android.sdk.ab_testing.uieditor.ResourceIds.read + 34(ResourceIds.java:34) at com.clevertap.android.sdk.ab_testing.uieditor.ResourceIds. + 21(ResourceIds.java:21) at com.clevertap.android.sdk.ab_testing.uieditor.UIEditor. + 165(UIEditor.java:165) at com.clevertap.android.sdk.ab_testing.CTABTestController. + 197(CTABTestController.java:197) at com.clevertap.android.sdk.CleverTapAPI.initABTesting + 7212(CleverTapAPI.java:7212) at com.clevertap.android.sdk.CleverTapAPI. + 155(CleverTapAPI.java:155) at com.clevertap.android.sdk.CleverTapAPI.instanceWithConfig + 509(CleverTapAPI.java:509) at com.clevertap.android.sdk.CleverTapAPI.getDefaultInstance + 460(CleverTapAPI.java:460) at com.clevertap.android.sdk.CleverTapAPI.getDefaultInstance + 475(CleverTapAPI.java:475) at com.segment.analytics.android.integrations.clevertap.CleverTapIntegration$1.create + 77(CleverTapIntegration.java:77) at com.segment.analytics.Analytics.performInitializeIntegrations + 1405(Analytics.java:1405) at com.segment.analytics.Analytics$2$1.run + 277(Analytics.java:277) at android.os.Handler.handleCallback + 739(Handler.java:739) at android.os.Handler.dispatchMessage + 95(Handler.java:95) at android.os.Looper.loop + 145(Looper.java:145) at android.app.ActivityThread.main + 6946(ActivityThread.java:6946) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke + 372(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1404(ZygoteInit.java:1404) at com.android.internal.os.ZygoteInit.main + 1199(ZygoteInit.java:1199)

    issue 
    opened by kunalbhise 22
  • java.lang.VerifyError: Verifier rejected class com.clevertap.android.sdk.InAppFCManager

    java.lang.VerifyError: Verifier rejected class com.clevertap.android.sdk.InAppFCManager

    Suddenly started getting this error on v3.3.3

    java.lang.VerifyError: Verifier rejected class com.clevertap.android.sdk.InAppFCManager: int[] com.clevertap.android.sdk.InAppFCManager.getInAppCountsFromPersistentStore(java.lang.String) failed to verify: int[] com.clevertap.android.sdk.InAppFCManager.getInAppCountsFromPersistentStore(java.lang.String): [0x3B] register v2 has type Conflict but expected Integer (declaration of 'com.clevertap.android.sdk.InAppFCManager' appears in /data/app/com.myapp.staging-w9oMEq_bIf4_tZ0J65nkLg==/base.apk) at com.clevertap.android.sdk.CleverTapAPI.(CleverTapAPI.java:182) at com.clevertap.android.sdk.CleverTapAPI.instanceWithConfig(CleverTapAPI.java:456) at com.clevertap.android.sdk.CleverTapAPI.getDefaultInstance(CleverTapAPI.java:435) at com.myapp.app.MyApp.initCleverTap(MyApp.kt:94) at com.myapp.app.MyApp.onCreate(MyApp.kt:74)

    This is what I am doing in my Application class onCreate()

    private fun initCleverTap() {
            cleverTap = CleverTapAPI.getDefaultInstance(applicationContext)
            cleverTap?.enableDeviceNetworkInfoReporting(true)
            CleverTapAPI.setDebugLevel(CleverTapAPI.LogLevel.DEBUG)
        }
    

    Android Studio 3.3 RC2

    opened by rishabh876 22
  • Application Not Responding - com.clevertap.android.sdk.pushnotification.amp.CTBackgroundJobService, InvisibleToUser

    Application Not Responding - com.clevertap.android.sdk.pushnotification.amp.CTBackgroundJobService, InvisibleToUser

    Hello Team, We are getting some ANRs from CleverTap SDK, please check it and resolve it ASAP. Here are the logs we received from AppStore - **executing service ****.app/com.clevertap.android.sdk.pushnotification.amp.CTBackgroundJobService, InvisibleToUser com.clevertap.android.sdk.pushnotification.amp.CTBackgroundJobService,

    at android.content.Intent.getAction (Intent.java:6763)
      at com.squareup.picasso.Dispatcher$NetworkBroadcastReceiver.onReceive (Dispatcher.java:562)
      at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$-android_app_LoadedApk$ReceiverDispatcher$Args_52851 (LoadedApk.java:1322)
      at android.app.-$Lambda$aS31cHIhRx41653CMnd4gZqshIQ.$m$7 (unavailable)
      at android.app.-$Lambda$aS31cHIhRx41653CMnd4gZqshIQ.run (unavailable)
      at android.os.Handler.handleCallback (Handler.java:790)
      at android.os.Handler.dispatchMessage (Handler.java:99)
      at android.os.Looper.loop (Looper.java:164)
      at android.app.ActivityThread.main (ActivityThread.java:6626)
      at java.lang.reflect.Method.invoke (Native method)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:811)
    
    waiting 
    opened by w3b-amit 20
  • com.clevertap.android.sdk.InAppNotificationActivity is not displaying the content

    com.clevertap.android.sdk.InAppNotificationActivity is not displaying the content

    When the app start this activity, it created a transparent activity which block any UI feedback. Here is the video of the issue.

    implementation 'com.clevertap.android:clevertap-android-sdk:4.0.0'

    Handle window ActivityRecord{e9a4be3 token=android.os.BinderProxy@36c2a98 {com.clevertap.android.sdk.InAppNotificationActivity}} visibility: false

    https://user-images.githubusercontent.com/3030785/105660461-08fa5c80-5f06-11eb-9b00-82ce0f22761f.mp4

    moved to support 
    opened by alanlai1989 19
  • Sound notification not working on android 8 and above.

    Sound notification not working on android 8 and above.

    I have added sound file in raw resources folder and followed all the steps mentioned in integration doc.I am able to see the notification but sound tune is not played above android version 8. sdk version : 'com.clevertap.android:clevertap-android-sdk:3.8.1',

    moved to support 
    opened by abhisheshsri 16
  • Deeplink invocation with query params as Bundle

    Deeplink invocation with query params as Bundle

    Hello,

    Currently the deep-links are directly invoked using fireUrlThroughIntent(). Is it possible to forward the query params of the deep link url as Bundle?

    https://github.com/CleverTap/clevertap-android-sdk/blob/6cc25bc4b6acb2d89e44c2a3450c6315f40c3f69/clevertap-android-sdk/src/main/java/com/clevertap/android/sdk/CTInAppBaseFragment.java#L93

    Add?

    private fun getIntentExtras(url: String): Bundle? {
        return try {
            val uri = Uri.parse(url)
            val queryKeys: Set<String> = uri.queryParameterNames
            Bundle().apply {
                queryKeys.forEach {
                    putString(it, uri.getQueryParameter(it))
                }
            }
        } catch (e: NullPointerException || e: UnsupportedOperationException) {
            LogUtils.logException(e)
            null
        } 
    }
    
    enhancement 
    opened by rachitmishra 16
  • Duplicate Profiles creation

    Duplicate Profiles creation

    While using Clevertap's pushProfile function, it is creating multiple profiles if I change details associated with it. Is there a way that we can update the existing profiles with new values instead of creating a new profile?

    opened by Aryan210 14
  • fatal exception ClassNotFoundException

    fatal exception ClassNotFoundException "org.jacoco.agent.rt.internal_28bab1d.Offline" after updating to 4.5.0

    Today I just upgraded clevertap from 4.2.0 to 4.5.0 and when I build the app, after launching it instantly crashed with following eror

    FATAL EXCEPTION: main
    
    Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_28bab1d.Offline" on path: DexPathList[[zip file "/data/app/~~fRF6xepWmDDbBm_DdFU20w==/coffee.fore2.fore.dev-jUniVy8T9DD7xSjurRVI_w==/base.apk"],nativeLibraryDirectories=[/data/app/~~fRF6xepWmDDbBm_DdFU20w==/coffee.fore2.fore.dev-jUniVy8T9DD7xSjurRVI_w==/lib/arm64, /data/app/~~fRF6xepWmDDbBm_DdFU20w==/coffee.fore2.fore.dev-jUniVy8T9DD7xSjurRVI_w==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
    
    FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_28bab1d/Offline;
    	at com.clevertap.android.sdk.ActivityLifecycleCallback.$jacocoInit(Unknown Source:13)
    	at com.clevertap.android.sdk.ActivityLifecycleCallback.<clinit>(Unknown Source:0)
    	at com.clevertap.android.sdk.ActivityLifecycleCallback.register(Unknown Source:0)
    	at coffee.fore2.fore.ForeApplication.onCreate(ForeApplication.kt:16)
    	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1193)
    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6995)
    	at android.app.ActivityThread.access$1600(ActivityThread.java:257)
    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1993)
    	at android.os.Handler.dispatchMessage(Handler.java:106)
    	at android.os.Looper.loop(Looper.java:236)
    	at android.app.ActivityThread.main(ActivityThread.java:8057)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_28bab1d.Offline" on path: DexPathList[[zip file "/data/app/~~fRF6xepWmDDbBm_DdFU20w==/coffee.fore2.fore.dev-jUniVy8T9DD7xSjurRVI_w==/base.apk"],nativeLibraryDirectories=[/data/app/~~fRF6xepWmDDbBm_DdFU20w==/coffee.fore2.fore.dev-jUniVy8T9DD7xSjurRVI_w==/lib/arm64, /data/app/~~fRF6xepWmDDbBm_DdFU20w==/coffee.fore2.fore.dev-jUniVy8T9DD7xSjurRVI_w==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
    	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    	... 14 more
    
    
    

    so far I only change gradle clevertap from 4.2.0 to 4.5.0 and gradle ext.kotlin_version = '1.3.61' to ext.kotlin_version = '1.6.0'

    what is this jacoco agent library? do I need to implement some library to gradle?

    Environment :

    • Device: Redmi Note 8
    • OS: Android 11
    • CleverTap SDK Version 4.5.0
    • Android Studio Version : Chipmunk 2021.2.1
    opened by fugogugo 12
  • com.clevertap.android.sdk.InAppNotificationActivity - Window couldn't find content container view

    com.clevertap.android.sdk.InAppNotificationActivity - Window couldn't find content container view

    Describe the bug java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rapido.passenger/com.clevertap.android.sdk.InAppNotificationActivity}: java.lang.RuntimeException: Window couldn't find content container view

    To Reproduce Steps to reproduce the behavior: 1 On Android 6 2 Sending an InAppNotification/Notification is causing this exception.

    Expected behavior Should have not given any exception or give error in the callback

    Environment (please complete the following information):

    • Device: [Vivo Y53]
    • OS: [e.g. Android 6]
    • CleverTap SDK Version 4.4.0]
    • Android Studio Version This is trending crash on our app.
    opened by ankit-g-rapido 12
  • request: support of proxy domain for Android

    request: support of proxy domain for Android

    Hi Clevertap Team,

    I wanted to confirm if Android SDK supports a way to provide an option for a proxy domain on Android SDK, similar to ios SDK and Web SDK

    I was not able to find the option on docs, so wanted if there is a way to achieve this.

    opened by DK070202 0
  • Use Secure Preference and DB

    Use Secure Preference and DB

    Is your feature request related to a problem? Please describe. Sensitive information exposed on the CleverTap SDK, preference should using secure preference since there's no one sure what client will sent to CleverTapAPI#onUserLogin

    Describe the solution you'd like As of security crypto was lowering down to SDK v21, please consider to use EncryptedSharedPreference

    Describe alternatives you've considered Use 3rd party library to make the SDK still available for v19

    Additional context image

    opened by jboxx 0
  • Getting issue of theme in InAppNotificationActivity

    Getting issue of theme in InAppNotificationActivity

    When sending CleverTap inAppNotification then most of the times popup doesn't appear. When Push notification is received and it is clicked then InAppNotification doesn't appear but application is redirected to MainActivity. In logs following exception appears. Also it is also not clear that at which point to 'setInAppNotificationButtonListener' as it has weakReference and is somehow garbage is collected then button action doesn't give any callback and data is lost. I'm using CleverTap v4.6.0.

    ThemeUtils: View class com.clevertap.android.sdk.gif.GifImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
    ThemeUtils: View class com.clevertap.android.sdk.customviews.CloseImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
    
    opened by usmanrana07 5
Releases(corev4.7.2)
Owner
CleverTap
Customer Retention & Engagement Platform
CleverTap
Countly Product Analytics Android SDK

Countly Android SDK We're hiring: Countly is looking for Android SDK developers, full stack devs, devops and growth hackers (remote work). Click this

Countly Team 648 Dec 23, 2022
LocationManager Wrapper for Android

Locationmanager Locationmanager is a small wrapper for Location Tracker. Installation Add jitpackto your repositories in Project build.gradle : allpro

Thomas Cirksena 19 Jan 19, 2022
CleverTap Android SDK

CleverTap Android SDKs ?? Introduction (Back to top) The CleverTap Android SDK for Mobile Customer Engagement and Analytics solutions CleverTap brings

CleverTap 71 Dec 2, 2022
A simple Android app to demonstrate the use of Hover SDK for M-PESA Send Money while offline. This SDK does not require an internet connection, it automates USSD sessions in the background of an android application.

HoverSDKDemo Hover SDK is an Android SDK that lets mobile developers to add money features to the applications. This SDK does not require an internet

Joel Kanyi 9 Dec 21, 2022
Sdk-android - SnapOdds Android SDK

Documentation For the full API documentation go to https://snapodds.github.io/sd

Snapodds 0 Jan 30, 2022
Unity-Android-SDK-Plugins - Android SDK/Library/Plugins (aar) for Unity Developers

Unity Android SDK Plugins Unity Android SDK Plugins is an Open Source project th

NNK 1 Aug 14, 2022
StudyLive是anyRTC开发的示例项目,演示了如何通过anyRTC云服务,配合anyRTC RTC SDK、anyRTC RTM SDK、anyRTC播放插件,实现在线自习室的场景。

StudyLive 项目概述 StudyLive是anyRTC开发的示例项目,演示了如何通过anyRTC云服务,配合anyRTC RTC SDK、anyRTC RTM SDK,实现在线自习室的场景。 平台兼容 iOS 9 及以上。 Android 4.4 及以上 效果展示 上麦用户调用图 主持人的使

anyrtcIO 11 Oct 19, 2022
Segmenkt - The SegmenKT Kotlin SDK is a Kotlin-first SDK for Segment

SegmenKT Kotlin SDK The SegmenKT Kotlin SDK is a Kotlin-first SDK for Segment. I

UNiDAYS 0 Nov 25, 2022
Frogo SDK - SDK Core for Easy Development

SDK for anything your problem to make easier developing android apps

Frogobox 10 Dec 15, 2022
HubSpot Kotlin SDK 🧺 Implementation of HubSpot API for Java/Kotlin in tiny SDK

HubSpot Kotlin SDK ?? Implementation of HubSpot API for Java/Kotlin in tiny SDK

BOOM 3 Oct 27, 2022
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools.

Maven Android SDK Deployer Original author including numerous fixes and changes: Manfred Moser [email protected] at simpligility technologies i

simpligility 1.4k Dec 27, 2022
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools.

Maven Android SDK Deployer Original author including numerous fixes and changes: Manfred Moser [email protected] at simpligility technologies i

simpligility 1.4k Dec 27, 2022
Opencv Android SDK application for Deep Neural Networks to run on Android.

This application allows you to deploy deep nets in Android environment using OpenCV Android SDK. With OpenCV, images are taken from the camera on your phone, and then these images are passed through the neural network and visualized on the front side. In this application, we will search for faces in the images taken and draw the found faces on the screen.

Ahmet Furkan DEMIR 10 Nov 1, 2022
Maps application in Android Studio using the Maps SDK for android

Google-Maps-Application Maps application in Android Studio using the Maps SDK for android. This app was initially developed in Java, but then was conv

Kyle McInnis 0 Nov 30, 2021
Xamarin.Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#

Xamarin.Android Xamarin.Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#. Build Status Platform

Xamarin 1.8k Jan 5, 2023
Example application using Bugfender SDK in Android

Bugfender Android SDK SDK Installation Here are the main points to getting Bugfender working on your apps: Get an app key at bugfender.com Add Bugfend

Bugfender 37 Dec 7, 2022
Android Real Time Chat & Messaging SDK

Android Chat SDK Overview Applozic brings real-time engagement with chat, video, and voice to your web, mobile, and conversational apps. We power emer

Applozic 659 May 14, 2022
Kommunicate.io Android Chat SDK for Customer Support

Kommunicate Android Chat SDK for Customer Support An Open Source Android Live Chat SDK for Customer Support Overview Kommunicate provides open source

Kommunicate 68 Jan 3, 2023