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:
You can also unsubscribe from the trip using its tripID.
Java Kotlin
Copy Roam . unsubscribeTrip ( "tripId" )