Android Mobile Authentication SDK
These utilities help you authenticate when making Amazon Location Service API calls from your Android applications. This specifically helps when using Amazon Cognito or API keys as the authentication method.
The Android mobile authentication SDK is available on github: Amazon Location Service Mobile Authentication SDK for Android
Installation
To use the mobile authentication SDK, add the following import statements to your
build.gradle
file in Android Studio.
implementation("software.amazon.location:auth:0.0.1") implementation("com.amazonaws:aws-android-sdk-location:2.72.0")
Authentication Functions
The authentication helper SDK has the following functions:
authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key"): LocationCredentialsProvider
: This function returns aLocationCredentialsProvider
initialized to work with an API Key.authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider
: This function returns aLocationCredentialsProvider
initialized to work with an Amazon Cognito identity pool.
Usage
To use the SDK in your code, import the following classes:
import com.amazonaws.services.geo.AmazonLocationClient import software.amazon.location.auth.AuthHelper import software.amazon.location.auth.LocationCredentialsProvider
You have two options when creating the authentication helper and location client provider instances. You can create an instance using Amazon Location API keys or Amazon Cognito.
-
To create an authentication helper instance using an Amazon Location API Key, declare the helper class as follows:
var authHelper = AuthHelper(applicationContext) var locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithApiKey("
My-Amazon-Location-API-Key
") -
To create an authentication helper instance using Amazon Cognito, declare the helper class as follows:
var authHelper = AuthHelper(applicationContext) var locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("
My-Cognito-Identity-Pool-Id
")
You can create an Amazon Location client instance using the location credentials provider and make calls to the Amazon Location service. The following example searches for places near a specified latitude and longitude.
var locationClient = authHelper.getLocationClient(locationCredentialsProvider.getCredentialsProvider()) var searchPlaceIndexForPositionRequest = SearchPlaceIndexForPositionRequest().withIndexName("
My-Place-Index-Name
").withPosition(arrayListOf(30.405423, -97.718833)) var nearbyPlaces = locationClient.searchPlaceIndexForPosition(searchPlaceIndexForPositionRequest)