AppManager

public class AppManager implements Manager

Known direct subclasses
TestAppManager

The AppManager that is used for testing.


Manages the communication between the app and the host.

Summary

Public methods

void
@RequiresCarApi(value = 5)
dismissAlert(int alertId)

Dismisses the alert with the given id.

void

Requests the current template to be invalidated, which eventually triggers a call to onGetTemplate to get the new template to display.

void

Sets the SurfaceCallback to get changes and updates to the surface on which the app can draw custom content, or null to reset the listener.

void
@RequiresCarApi(value = 5)
showAlert(@NonNull Alert alert)

Shows an alert on the car screen.

void
showToast(@NonNull CharSequence text, int duration)

Shows a toast on the car screen.

Public methods

dismissAlert

Added in 1.2.0
@RequiresCarApi(value = 5)
public void dismissAlert(int alertId)

Dismisses the alert with the given id.

This is a no-op if there is not an active alert with the given id

Parameters
int alertId

the id of the alert that should be dismissed

Throws
androidx.car.app.HostException

if the remote call fails

invalidate

Added in 1.0.0
public void invalidate()

Requests the current template to be invalidated, which eventually triggers a call to onGetTemplate to get the new template to display.

Throws
androidx.car.app.HostException

if the remote call fails

setSurfaceCallback

Added in 1.0.0
public void setSurfaceCallback(@Nullable SurfaceCallback surfaceCallback)

Sets the SurfaceCallback to get changes and updates to the surface on which the app can draw custom content, or null to reset the listener.

This call requires the androidx.car.app.ACCESS_SURFACE permission to be declared.

The Surface can be used to draw custom content such as a navigation app's map.

Note that the listener relates to UI events and will be executed on the main thread using getMainLooper.

Throws
java.lang.SecurityException

if the app does not have the required permissions to access the surface

androidx.car.app.HostException

if the remote call fails

showAlert

Added in 1.2.0
@RequiresCarApi(value = 5)
public void showAlert(@NonNull Alert alert)

Shows an alert on the car screen.

Alerts with the same id, in the scope of the application, are considered equal. Even if their content differ.

Posting an alert while another alert is displayed would dismiss the old alert and replace it with the new one.

Only navigation templates support alerts. Triggering an alert while showing a non-supported template results in the cancellation of the alert.

Parameters
@NonNull Alert alert

the alert to show

Throws
androidx.car.app.HostException

if the remote call fails

java.lang.NullPointerException

if alert is null

showToast

Added in 1.0.0
public void showToast(@NonNull CharSequence text, int duration)

Shows a toast on the car screen.

Parameters
@NonNull CharSequence text

the text to show

int duration

how long to display the message

Throws
androidx.car.app.HostException

if the remote call fails

java.lang.NullPointerException

if text is null