-
Notifications
You must be signed in to change notification settings - Fork 1
Getting Started (Core Location)
Core Location provides services for determining a device’s geographic location, altitude, orientation, or position relative to a nearby iBeacon. The framework uses all available onboard hardware, including Wi-Fi, GPS, Bluetooth, magnetometer, barometer, and cellular hardware to gather data.
Before using the Core Location API, make sure it's enabled inside the plugin settings. See the screenshot below:
When you are ready to use location services, follow these steps:
-
Check to see if your app is authorized to use location services and request permission if your app's authorization status is not yet determined, as described in Requesting Permission to Use Location Services.
-
Check to see if the appropriate location services are available for you to use, as described in Determining the Availability of Location Services.
-
Assign a custom object to the SetDelegate method of the
ISN_CLLocationManager
class. This object must conform to the ISN_iCLLocationManagerDelegate interface. -
Configure the properties related to the service you intend to use. For example, when getting location updates, always configure the
distanceFilter
anddesiredAccuracy
properties. -
Call the appropriate method to start the delivery of events.
Current permissions state can be obtained by AuthorizationStatus
property. The authorization status of a given app is managed by the system and determined by several factors. Apps must be explicitly authorized to use location services by the user and location services must themselves currently be enabled for the system. A request for user authorization is displayed automatically when your app first attempts to use location services. See the example below.
using SA.iOS.CoreLocation;
...
ISN_CLAuthorizationStatus status = ISN_CLLocationManager.AuthorizationStatus;
if(status == ISN_CLAuthorizationStatus.AuthorizedAlways ||
status == ISN_CLAuthorizationStatus.AuthorizedWhenInUse) {
Debug.Log("Location usage authorized");
}
In case your applicated does not have location authorization yet. you may use RequestWhenInUseAuthorization
method. When the current authorization status is NotDetermined
, this method runs asynchronously and prompts the user to grant permission to the app to use location services. The user prompt contains the text from the NSLocationWhenInUseUsageDescription
key in your app’s Info.plist
file, and the presence of that key is required when calling this method. After the status is determined, the location manager delivers the results to the delegate’s DidChangeAuthorizationStatus
method. If the current authorization status is anything other than NotDetermined
, this method does nothing and does not call the DidChangeAuthorizationStatus
method.
using SA.iOS.CoreLocation;
...
ISN_CLLocationManager.RequestWhenInUseAuthorization();
You must call this method or the RequestAlwaysAuthorization
method prior to using location services. If the user grants “when-in-use” authorization to your app, your app can start most (but not all) location services while it is in the foreground. (Apps cannot use any services that automatically relaunch the app, such as region monitoring or the significant location change service.) When started in the foreground, services continue to run in the background if your app has enabled background location updates in the Capabilities tab of your Xcode project. Attempts to start location services while your app is running in the background will fail. The system displays a location-services indicator in the status bar when your app moves to the background with active location services.
using SA.iOS.CoreLocation;
...
ISN_CLLocationManager.RequestAlwaysAuthorization();
Starting from iOS 10 you also need to provide a reason for the user why your application want's to use the location services. You can fill it inside the Core Location settings section:
Use the SetDelegate method to assign an instance of ISN_ICLLocationManagerDelegate if you need to track authorization change status.
Reliable and high-quality Unity Development service. Let's Talk!
Website | AssetStore | LinkedIn | Youtube | Scripting Reference
- Getting Started
- Authentication
- Game Center UI
- Leaderboards
- Default Leaderboard
- Achievements
- Saving A Game
- Access Point
- iTunes Connect Setup
- StoreKit Initialization
- Purchase flow
- Receipt Validation
- Store Review Controller
- Storefront API
- Subscription Offers