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:

You can also unsubscribe from the trip using its tripID.

Roam.unsubscribeTrip("tripId")

Last updated