Android Mobile Authentication SDK - Amazon Location Service

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. Additionally, both the mobile authentication SDK and the AWS SDK are available on the AWS Maven repository.

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 a LocationCredentialsProvider initialized to work with an API Key.

  • authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider: This function returns a LocationCredentialsProvider 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)