Subscribe to Trip (Android)

Explore how to subscribe to a trip on Android with Trips v2.

You can subscribe to a trip using the tripID to get real-time trip data.

Roam.subscribeTrip("tripId");

Once you subscribe to the trip, you will receive real time trip data in the listener method of RoamReceiver sub-class.

In order to subscribe to the trips with the listener method, you need to make sure the below is implemented.

Listeners are needed to consume the location data from the SDK itself. In order to enable listeners, ensure the following.

To listen to location updates, create a class that extends RoamReceiver. Then, register the receiver by adding a receiver element to the application element in your manifest.

Note: For self-tracking, you can only listen to location, error, and offline trip status data since the locations are not being sent to our servers for processing events.

<application>
        ...
     <receiver android:name=".LocationReceiver"
                    android:enabled="true"
                    android:exported="false">
         <intent-filter>
         <action android:name="com.roam.android.RECEIVED"/>
         </intent-filter>
     </receiver>
         ...
</application>

Then add the code to the receiver.

public class LocationReceiver extends RoamReceiver {

    @Override
    public void onLocationUpdated(Context context, RoamLocation roamLocation) {
        super.onLocationUpdated(context, roamLocation);
	// receive own location updates here
	// do something with location data using location
	// roamLocation.getActivity();
	// roamLocation.getRecordedAt();
	// roamLocation.getTimezoneOffset();
	// roamLocation.getMetadata();
	// roamLocation.getBatteryStatus();
	// roamLocation.getNetworkStatus();
	// roamLocation.getLocation().getLatitude();
	// roamLocation.getLocation().getLongitude();
	// roamLocation.getLocation().getBearing();
	// roamLocation.getLocation().getAltitude();
	// roamLocation.getLocation().getAccuracy();
	// roamLocation.getLocation().getSpeed();
	// roamLocation.getLocation().getProvider();
	// roamLocation.getLocation().getTime();
	// roamLocation.getLocation().getVerticalAccuracyMeters();
    }

    @Override
    public void onReceiveTrip(Context context, RoamTripStatus roamTripStatus) {
       //get realtime trip data
    }
    
    @Override
    public void onError(Context context, RoamError roamError) {
    	// receive error message here
        // roamError.getCode());	
        // roamError.getMessage());
    }

}

You can access the subscribed trip response parameters below:

Parameter
Type
Description

roamTripStatus.getTripId()

String

Unique identifier for the object.

roamTripStatus.getSpeed()

double

Current speed of the subscribed trip

roamTripStatus.getDistance()

double

The total distance covered by the user for this trip.

roamTripStatus.getDuration()

double

The total duration taken by the user for this trip.

roamTripStatus.getStartedTime()

String

The timestamp of when the trip was started by the user

roamTripStatus.getPace()

double

The current pace of the subscribed trip

roamTripStatus.getLatitude()

double

Current latitude coordinates of the subscribed trip

roamTripStatus.getLongitude()

double

Current longitude coordinates of the subscribed trip

roamTripStatus.getAltitude()

double

Current altitude of the subscribed trip

roamTripStatus.getElevationGain()

double

The elevation gain covered by the user for this trip.

roamTripStatus.getTotalElevation()

double

The total elevation gain covered by the user for this trip.

You can also unsubscribe from the trip using its tripID.

Roam.unsubscribeTrip("tripId")

Last updated