Page Summary
-
The Consumer SDK requires initialization with a provider ID and authentication token factory before use.
-
Maps SDK v18.1.0 or later is required, with the latest renderer preferred for optimal performance.
-
Before initializing the Consumer SDK, initialize Maps SDK and specify your preferred renderer to ensure proper map rendering.
-
Secure communication is handled via SSL/TLS, and Android API versions 23 or earlier may require a security provider patch.
Before starting these procedures, make sure you have enabled the appropriate services and the Consumer SDK as described in earlier sections.
To initialize the Consumer SDK, follow these steps:
Get the ConsumerApi
instance
To use the Consumer SDK, your app needs to initialize the singleton ConsumerApi
asynchronously. The initialization method takes the AuthTokenFactory
class to generate new JWT tokens for the user when necessary.
The providerId
is the Project IDof your Google Cloud Project. For more
information about creating a Fleet Engine project, see Create your Fleet Engine project
in the Fleet Engine guide.
Your app should implement the AuthTokenFactory
as described in Consumer SDK
Authentication
.
Java
Task<ConsumerApi>
consumerApiTask
=
ConsumerApi
.
initialize
(
this
,
"myProviderId"
,
authTokenFactory
);
consumerApiTask
.
addOnSuccessListener
(
consumerApi
-
>
this
.
consumerApi
=
consumerApi
);
Kotlin
val
consumerApiTask
=
ConsumerApi
.
initialize
(
this
,
"myProviderId"
,
authTokenFactory
)
consumerApiTask
?.
addOnSuccessListener
{
consumerApi
:
ConsumerApi
-
>
this
@YourActivity.consumerApi
=
consumerApi
}
Maps SDK and maps renderers
The Consumer SDK v2.0.0 and later support the Maps SDK for Android v18.1.0 and
later. The following table summarizes the default renderer by Maps SDK version
and the supportability of both renderers. If possible, use the latest renderer.
If you must use the legacy renderer, explicitly specify it using MapsInitializer.initialize()
.
| Maps SDK version | Supports the latest renderer | Supports the legacy renderer | Default renderer |
|---|---|---|---|
|
V18.1.0 and below
|
Yes | Yes | Legacy* |
|
V18.2.0
|
Yes | Yes | Latest |
* With the rollout of new Maps Renderer , the Latest renderer will be the default.
If you must use a preferred renderer, run all UI-rendering operations after OnMapsSdkInitializedCallback
returns a result. UI-rendering
operations include the following operations:
-
Inflating a view that contains
GoogleMapVieworConsumerMapView. -
Placing markers on
ConsumerMapView.
If you don't run these operations after receiving the OnMapsSdkInitializedCallback
result, the Maps SDK doesn't allocate your
preferred renderer and the map view is instead rendered by the default renderer.
Initialize Maps SDK before initializing the Consumer SDK
-
In your
Applicationor start-upActivityclass, call MapsInitializer.initialize() -
Wait for the renderer request result before initializing the Consumer SDK.
See the following examples for details.
Java
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
main
);
initViews
();
MapsInitializer
.
initialize
(
getApplicationContext
(),
Renderer
.
LATEST
,
new
OnMapsSdkInitializedCallback
()
{
@Override
public
void
onMapsSdkInitialized
(
Renderer
renderer
)
{
switch
(
renderer
)
{
case
LATEST
:
Log
.
i
(
"maps_renderer"
,
"LATEST renderer"
);
break
;
case
LEGACY
:
Log
.
i
(
"maps_renderer"
,
"LEGACY renderer"
);
break
;
}
initializeConsumerSdk
();
}
});
}
Kotlin
fun
onCreate
(
savedInstanceState
:
Bundle?)
{
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
main
)
initViews
()
MapsInitializer
.
initialize
(
getApplicationContext
(),
Renderer
.
LATEST
,
object
:
OnMapsSdkInitializedCallback
()
{
fun
onMapsSdkInitialized
(
renderer
:
Renderer?)
{
when
(
renderer
)
{
LATEST
-
>
Log
.
i
(
"maps_renderer"
,
"LATEST renderer"
)
LEGACY
-
>
Log
.
i
(
"maps_renderer"
,
"LEGACY renderer"
)
}
initializeConsumerSdk
()
}
})
}
Notes on SSL/TLS
Internally, the Consumer SDK implementation uses SSL/TLS to communicate securely
with the Fleet Engine service. Android API versions 23 or earlier may require a SecurityProvider
patch to communicate with the server. For more information
about working with SSL in Android, see Security GMS
Provider
.
The article also contains code samples for patching the security provider.

