MMKLocationManager

@interface MMKLocationManager : NSObject

Handles location updates and changes.

Summary

Instance methods

- (void)
    subscribeForLocationUpdatesWithDesiredAccuracy:(double)desiredAccuracy
                                           minTime:(long long)minTime
                                       minDistance:(double)minDistance
                              allowUseInBackground:(BOOL)allowUseInBackground
                                     filteringMode:
                                         (MMKLocationFilteringMode)filteringMode
                                           purpose:(MMKLocationPurpose)purpose
                                  locationListener:
                                      (nonnull id<MMKLocationDelegate>)
                                          locationListener;

Subscribe for location update events

- (void)requestSingleUpdateWithLocationListener:
    (nonnull id<MMKLocationDelegate>)locationListener;

Subscribe to a single location update

- (void)unsubscribeWithLocationListener:
    (nonnull id<MMKLocationDelegate>)locationListener;

Unsubscribe from location update events

- (void)suspend;
Stops updates for all subscriptions until resume() is called

- (void)resume;
Resumes updates stopped by a suspend() call

Instance methods

subscribeForLocationUpdatesWithDesiredAccuracy:minTime:minDistance:allowUseInBackground:filteringMode:purpose:locationListener:

- (void)
    subscribeForLocationUpdatesWithDesiredAccuracy:(double)desiredAccuracy
                                           minTime:(long long)minTime
                                       minDistance:(double)minDistance
                              allowUseInBackground:(BOOL)allowUseInBackground
                                     filteringMode:
                                         (MMKLocationFilteringMode)filteringMode
                                           purpose:(MMKLocationPurpose)purpose
                                  locationListener:
                                      (nonnull id<MMKLocationDelegate>)
                                          locationListener;

Subscribe for location update events. If the listener was already subscribed to updates from the LocationManager, subscription settings will be updated. Use desiredAccuracy = 0 to obtain best possible accuracy, minTime = 0 to ignore minTime and use minDistance instead, minDistance = 0 to use only minTime. If both minTime and minDistance are set to zero, the subscription will use the same settings as other LocationManager clients.

The class does not retain the object in the 'locationListener' parameter. It is your responsibility to maintain a strong reference to the target object while it is attached to a class.

Parameters

desiredAccuracy

Desired location accuracy, in meters. This value is used to configure location services provided by the host OS. If locations with the desired accuracy are not available, updates may be called with lower accuracy.

minTime

Minimal time interval between events, in milliseconds.

minDistance

Minimal distance between location updates, in meters.

allowUseInBackground

Defines whether the subscription can continue to fetch notifications when the application is inactive. If allowUseInBackground is true, set the location flag in UIBackgroundModes for your application.

filteringMode

Defines whether locations should be filtered.

purpose

Defines whether locations will be used for navigation.

locationListener

Location update listener.


requestSingleUpdateWithLocationListener:

- (void)requestSingleUpdateWithLocationListener:
    (nonnull id<MMKLocationDelegate>)locationListener;

Subscribe to a single location update. If the listener was already subscribed to location updates, the previous subscription will be removed.

The class does not retain the object in the 'locationListener' parameter. It is your responsibility to maintain a strong reference to the target object while it is attached to a class.

Parameters

locationListener

Location update listener.


unsubscribeWithLocationListener:

- (void)unsubscribeWithLocationListener:
    (nonnull id<MMKLocationDelegate>)locationListener;

Unsubscribe from location update events. Can be called for either MMKLocationManager::subscribeForLocationUpdatesWithDesiredAccuracy:minTime:minDistance:allowUseInBackground:filteringMode:purpose:locationListener: or MMKLocationManager::requestSingleUpdateWithLocationListener:. For MMKLocationManager::requestSingleUpdateWithLocationListener:, if an event was already received, MMKLocationManager::unsubscribeWithLocationListener: does not have any effect. If the listener is already unsubscribed, the method call is ignored.

The class does not retain the object in the 'locationListener' parameter. It is your responsibility to maintain a strong reference to the target object while it is attached to a class.

Parameters

locationListener

Listener passed to either MMKLocationManager::subscribeForLocationUpdatesWithDesiredAccuracy:minTime:minDistance:allowUseInBackground:filteringMode:purpose:locationListener: or MMKLocationManager::requestSingleUpdateWithLocationListener:.


suspend

- (void)suspend;

Stops updates for all subscriptions until resume() is called.


resume

- (void)resume;

Resumes updates stopped by a suspend() call.