Importing/Linking SDK Binaries

Gradle Settings

The SDK is available in an AAR (Android Archive) format. To use the SDK in your application project, proceed as follows:

  1. Copy the SmartConnect SDK AAR to the libs folder of your application module.
  2. Declare the SDK as a dependency in the gradle file specific to your module.

The following build line will have to be added under the dependenices attribute in your gradle file:

 

compile(name:'SmartConnect-vx.x.x.xx', ext:'aar')

 

The folder structure of the project will look something like this:

NOTE: If the application module does not detect the SDK library, you will have to add repositories which look into one or more directories. The following snippet will have to be added to the gradle file of your project.

 

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

 

Along with the SmartConnect SDK, a few more dependencies will have to be declared for the SDK.

  • Hotspot Core libraries

 

compile(name:'hotspot_core-release-vx.x.xx', ext:'aar')

 

  • Inflight Network Libraries
compile(name:'ipass-smcui-support-vx.x.xx', ext:'aar')

 

  • Google Play Services Libraries

 

compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.google.android.gms:play-services-maps:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'

 

  • Because of the above libraries used and the SDK code, the AAR will usually break the '64k reference limit'. To get around this, you will have to setup your project to use a multidex configuration. If your minSdkVersion is set to 21 or higher, all you need to do is set multiDexEnabled to true in your module-level build.gradle file, as shown here:
android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 25 multiDexEnabled true } ... }

 

However, if your minSdkVersion is set to 20 or lower, then you must use the multidex support library as follows:

android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 25 multiDexEnabled true } }

Override the Application class, change it to extend MultiDexApplication as follows:

public class MyApplication extends MultiDexApplication { }

The complete gradle file of the application module will look something like this:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.myapplicaiton"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 23
        multiDexEnabled true
    }
}

dependencies {
    compile(name: 'SmartConnect-vx.x.x.xxx', ext: 'aar')

    compile(name: 'hotspot_core-release-5.1.523', ext: 'aar')
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.google.android.gms:play-services-gcm:8.4.0'
    compile 'com.google.android.gms:play-services-maps:8.4.0'
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
}

Manifest Settings

Most of the permissions required the SDK will be declared in its own manifest. ACCESS_FINE_LOCATION is the only permission that will have to be explicitly declared by the client application.

uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"

 

Create A New Project Proguard Settings