Roam.ai Docs
HomeContactDashboard
  • Introduction
  • Getting Started
    • Key Concepts
  • Frameworks
  • Android
    • Quickstart (Android)
    • Pub/Sub Locations (Android)
    • SDK Methods (Android)
      • SDK Configuration (Android)
      • Get Current Location (Android)
      • Update Current Location (Android)
      • Update Location When Stationary (Android)
      • Trip v1 SDK Methods (Android)
      • Trip v2 SDK Methods (Android)
        • Create Trip (Android)
        • Update Trip (Android)
        • Start Quick Trip (Android)
        • Start Trip (Android)
        • End Trip (Android)
        • Pause Trip (Android)
        • Resume Trip (Android)
        • Sync Trip (Android)
        • Get Trip (Android)
        • Get Active Trips (Android)
        • Get Trip Summary (Android)
        • Subscribe to Trip (Android)
        • Delete Trip (Android)
    • Utility Methods (Android)
    • Troubleshooting (Android)
    • Changelog (Android)
  • iOS
    • Quickstart (iOS)
    • Pub/Sub Locations (iOS)
    • SDK Methods (iOS)
      • SDK Configuration (iOS)
      • Get Current Location (iOS)
      • Update Current Location (iOS)
      • Update Location When Stationary (iOS)
      • Trips v1 SDK Methods (iOS)
      • Trips v2 SDK Methods (iOS)
        • Create Trip (iOS)
        • Update Trip (iOS)
        • Start Quick Trip (iOS)
        • Start Trip (iOS)
        • End Trip (iOS)
        • Pause Trip (iOS)
        • Resume Trip (iOS)
        • Sync Trip (iOS)
        • Get Trip (iOS)
        • Get Active Trips (iOS)
        • Get Trip Summary (iOS)
        • Subscribe Trip (iOS)
        • Delete Trip (iOS)
    • Utility Methods (iOS)
    • Troubleshooting (iOS)
    • Changelog (iOS)
  • React Native
  • Flutter
  • PRODUCTS
  • Tracking (BETA)
  • Geofencing
  • Trips
  • APIs
    • Authorization
    • Users API
      • Create User API
      • Get User API
      • Update User API
    • Locations API
      • Get Locations API
      • Get Stop Locations API
    • Insights API
      • Get User POIs API
      • Get User Home Location API
      • Get User Work Location API
    • Trips v1 API
      • Create Trip API v1
      • Get Trip API
      • Update Trip API v1
      • Delete Trip API v1
      • Trip Summary API
      • Export Trip Summary as GPX
    • Trips v2 API
      • Create Trip API
      • Get Single Trip API
      • Get Multiple Trips API
      • Update Trip API
      • Control Trip API
        • Start Trip API
        • Pause Trip API
        • Resume Trip API
        • End Trip API
      • Get Trip Summary API
      • Export Trip API
      • Delete Trip API
    • Geofencing API
      • CREATE Geofence API
      • GET Geofence API
      • UPDATE Geofence API
      • DELETE Geofence API
    • Events API
      • Get Events
      • Trip Events
    • Nearby API
      • Get Nearby User API
      • Get Nearby Geofence API
    • Moving Geofence API
      • Create Moving-Geofence API
      • Update Moving-Geofence API
      • GET Moving-Geofence API
      • Delete Moving-Geofence API
    • User Groups API
      • Create Group API
      • Get User Group by ID
      • Get User Group List
      • Add Users to Group API
      • Update Group API
      • Find Nearby Users from Group
    • Query with Metadata
  • WEBHOOK
    • Webhook
    • Slack Integration
  • LIBRARIES
    • Javascript Library
    • Go Library
    • Python Library
Powered by GitBook
On this page

Was this helpful?

Export as PDF
  1. Android
  2. SDK Methods (Android)
  3. 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.

Roam.subscribeTrip("tripId");
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());
    }

}
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:

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")

PreviousGet Trip Summary (Android)NextDelete Trip (Android)

Last updated 2 years ago

Was this helpful?