Android tracking application to track user behaviour while filling any type of forms.
classpath 'org.aspectj:aspectjtools:1.9.4'
classpath("com.archinamon:android-gradle-aspectj:3.4.3")
maven { url 'https://jitpack.io' }
apply plugin: 'com.archinamon.aspectj'
Add library to app:
implementation 'com.github.Algolytics:android-tracking:%current_version%'
Allow aspectj from library:
aspectj {
includeAspectsFromJar 'com.github.Algolytics:android-tracking:%current_version%'
}
Create an object of AspectConfig and enable its options:
Kotlin
val aspectConfig = AspectConfig()
.enableClicks()
.enableInputs()
.enableActivities()
Java
AspectConfig aspectConfig = new AspectConfig()
.enableClicks()
.enableInputs()
.enableActivities()
Available options:
enableClicks()
- enabling click aspectsenableInputs()
- enabling text aspectsenableActivities()
- enabling activity aspects
Create an object of Tracker and enable its options:
Kotlin
Tracker.Builder(
this,
"apiKey",
"url",
"scenarioName"
)
.enableConnectivity()
.enableLocation()
.aspectConfig(aspectConfig)
.build()
Java
new Tracker.Builder(
this,
"apiKey",
"url",
"scenarioName"
)
.enableConnectivity()
.enableLocation()
.aspectConfig(aspectConfig)
.build()
Available options:
enableConnectivity()
- tracking Internet connectivity informationenableAccelerometer
- tracking information about phone rotationsenableLocation()
- tracking information about locationenableBattery()
- tracking information about batteryenableWifi()
- tracking information about nearby wifi connectionsenableContacts()
- tracking amount of contactsenablePhotos()
- tracking amount of photosenableCalendar()
- tracking events from calendarenableApplications()
- tracking amount and names of installed applicationaspectConfig( aspectConfig )
- tracking information about aspects (text inputs, changing activities, button clicks). It takes previously created AspectConfig object as an argument.apiPoolingTimeMillis( timeInMillis )
- changing frequency of sending information to the server (default is 1/30 000 millis). It takes time in millis as an argument.connectivityPoolingTimeMillis( timeInMillis )
- changing frequency of getting information about connectivity (default is 1/30 000 millis). It takes time in millis as an argument.accelerometerPoolingTimeMillis( timeInMillis )
- changing frequency of getting information about accelerometer (default is 1/30 000 millis). It takes time in millis as an argument.locationPoolingTimeMillis( timeInMillis )
- changing frequency of getting information about location (default is 1/30 000 millis). It takes time in millis as an argument.batteryPoolingTimeMillis( timeInMillis )
- changing frequency of getting information about battery (default is 1/30 000 millis). It takes time in millis as an argument.wifiPoolingTimeMillis( timeInMillis )
- changing frequency of getting information about nearby wifi connections (default is 1/30 000 millis). It takes time in millis as an argument.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
inputName.addTextChangedListener(object: DefaultTextWatcher(editText){})
spinnerName.onItemSelectedListener = DefaultSpinnerListener(spinnerName, "spinner_tracking_name")
Maximal version that is compatible with android-tracker is 3.5.2
classpath 'com.android.tools.build:gradle:3.5.2'
- amount of contacts + date of last one
- amount of photos
- list of applications
- list of events from calendar
- accelerometer registers
- location registers
- connectivity information
- battery information
- nearby wifi networks
- changed activities
- clicks events
- selected inputs
- minimal SDK version: 19
- target SDK version: 28