Android SDK Methods (Android) Trip v2 SDK Methods (Android) 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.
Java Kotlin
Copy Roam . subscribeTrip ( "tripId" );
Copy 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.
Copy <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.
Java Kotlin
Copy 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());
}
}
Copy class LocationReceiver : RoamReceiver () {
override fun 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 fun onReceiveTrip (context: Context ?, roamTripStatus: RoamTripStatus ?) {
//get realtime trip data
}
override fun onError (context: Context ?, roamError: RoamError ?) {
// receive error message here
// roamError.getCode())
// roamError.getMessage())
}
}
You can access the subscribed trip response parameters below:
roamTripStatus.getTripId()
Unique identifier for the object.
roamTripStatus.getSpeed()
Current speed of the subscribed trip
roamTripStatus.getDistance()
The total distance covered by the user for this trip.
roamTripStatus.getDuration()
The total duration taken by the user for this trip.
roamTripStatus.getStartedTime()
The timestamp of when the trip was started by the user
The current pace of the subscribed trip
roamTripStatus.getLatitude()
Current latitude coordinates of the subscribed trip
roamTripStatus.getLongitude()
Current longitude coordinates of the subscribed trip
roamTripStatus.getAltitude()
Current altitude of the subscribed trip
roamTripStatus.getElevationGain()
The elevation gain covered by the user for this trip.
roamTripStatus.getTotalElevation()
The total elevation gain covered by the user for this trip.
You can also unsubscribe from the trip using its tripID.
Java Kotlin
Copy Roam . unsubscribeTrip ( "tripId" )