Android
The Glimr SDK Lite focuses on location data from devices in foreground. To save battery the SDK uses the last known location of the device.
Installation
The Glimr SDK Lite focuses on location data from devices in foreground. To save battery the SDK uses the last known location of the device.
Permission requirements, some are optional:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
The SDK uses Gson
and a few Google Play services
implementation 'com.google.code.gson:gson:2.8.7'
implementation 'com.google.android.gms:play-services-base:17.6.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
implementation 'com.google.android.gms:play-services-location:18.0.0'
Since the SDK makes use of the AAID for ad use cases, the application manifest must include instructions for either AdMob or Google Ad Manager. Please refer to this Google post or the discussion on Stackoverflow
<meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP" android:value="true"/>
- Please make sure you include the following proguard rules. In some cases Android is a bit too aggressive on cleaning and striping parts of the library.
-keep class io.glimr.sdk.network.GLRequestPayload { *; }
-keep class io.glimr.sdk.network.GLPostReqAsync { *; }
-keep class io.glimr.sdk.network.GLRequest { *; }
Gradle (mavenCentral)
implementation 'io.glimr.geo:glimr-sdk-lite:3.3.2'
Example
GLManager manager = GLManager.getInstance();
manager.init(this.getApplicationContext(), <API_TOKEN>, false, 90);
// Limit the maximum decimals for a GPS fix to be sent to the service (default 5)
manager.setGeoFixDecimals(4);
// Optionally use cached tags
Log.i("cached", "getCachedGlimrTags raw: " + GLManager.getInstance().getCachedGlimrTags());
// Callback for fresh tags
GLManager.getInstance().setGlimrTagsCallback(new GLEvent() {
@Override
public void glimrTagsUpdated(HashMap<String, ArrayList<String>> map) {
Log.i("response", "glimrTagsUpdated raw: " + map);
Log.i("response", "glimrTagsUpdated list: " + GLManager.mapToArrayList(map));
Log.i("response", "glimrTagsUpdated query string: " + GLManager.map2QueryString(map));
}
@Override
public void tagsUpdateError(int responseCode, String errorMessage) {
Log.i("response", "tagsUpdateError raw: " + responseCode);
}
});
GLManager.getInstance().getGlimrTags();
Questions?
Please reach out to us on [email protected]!
Updated over 2 years ago