/// Basic service set identification(BSSID) The BSSID is the MAC address of the wireless access point(WAP) generated by combining the 24 bit Organization Unique Identifier(the manufacturer's identity)
/// and the manufacturer's assigned 24-bit identifier for the radio chipset in the WAP.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class Fence : IDisposable
{
private bool _disposed = false;
/// <summary>
/// Gets the type of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public FenceType Type
{
get
/// <summary>
/// Gets the id of place.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int PlaceId
{
get
/// <summary>
/// Gets the longitude of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public double Longitude
{
get
/// <summary>
/// Gets the latitude of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public double Latitude
{
get
/// <summary>
/// Gets the radius of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int Radius
{
get
/// <summary>
/// Gets the address of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public string Address
{
get
/// <summary>
/// Gets the bssid of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public string Bssid
{
get
/// <summary>
/// Gets the ssid of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public string Ssid
{
get
/// <summary>
/// Creates a geopoint type of new geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId">The current place id.</param>
/// <param name="latitude">Specifies the value of latitude of geofence [-90.0 ~ 90.0] (degrees).</param>
/// <param name="longitude">Specifies the value of longitude of geofence [-180.0 ~ 180.0] (degrees).</param>
/// <summary>
/// Creates a Wi-Fi type of new geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId">The current place id.</param>
/// <param name="bssid">Specifies the value of BSSID of Wi-Fi MAC address.</param>
/// <param name="ssid"> Specifies the value of SSID of Wi-Fi Device.</param>
/// <summary>
/// Creates a bluetooth type of new geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId">The current place id.</param>
/// <param name="bssid">Specifies the value of BSSID of BT MAC address.</param>
/// <param name="ssid"> Specifies the value of SSID of BT Device.</param>
/// <summary>
/// Overloaded Dispose API for destroying the fence Handle.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public void Dispose()
{
Dispose(true);
/// <summary>
/// Represents the Geofence list Item data.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class FenceData
{
internal FenceData(int fenceId, IntPtr handle, int index, int count)
/// <summary>
/// Geofence instance.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public Fence Fence
{
get;
/// <summary>
/// The geofence id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int GeofenceId
{
get;
/// <summary>
/// The index number of the fences in the list.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <value>Index value starts from 1.</value>
public int Index
{
/// <summary>
/// The total number of fences that exists for the requester.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int Count
{
get;
/// <summary>
/// Represents the Place list Item data.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class PlaceData
{
internal PlaceData(int id, string name, int index, int count)
/// <summary>
/// The current place id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int PlaceId
{
get;
/// <summary>
/// The current place name.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public string Name
{
get;
/// <summary>
/// The index number of the places in the list.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <value>Index value starts from 1.</value>
public int Index
{
/// <summary>
/// The total number of places that exists for the requester.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int Count
{
get;
/// <item>Duration: Geofence is specified by duration of current state</item>
/// </list>
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class FenceStatus : IDisposable
{
private bool _disposed = false;
/// <summary>
/// Creates a new geofence status.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <exception cref="ArgumentException">Incase of Invalid parameter.</exception>
/// <exception cref="NotSupportedException">Incase of Geofence is not supported.</exception>
public FenceStatus(int fenceId)
/// <summary>
/// Gets the state of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <exception cref="NotSupportedException">Incase of Geofence is not supported.</exception>
public GeofenceState State
{
/// <summary>
/// Gets the amount of seconds geofence is in the current state.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <exception cref="NotSupportedException">Incase of Geofence is not supported.</exception>
public int Duration
{
/// <summary>
/// Overloaded Dispose API for destroying the fence Handle.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public void Dispose()
{
Dispose(true);
/// <summary>
/// Enumeration for geofence type.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public enum FenceType
{
/// <summary>
/// Geofence is specified by geospatial coordinate.
/// </summary>
+ /// <since_tizen>3</since_tizen>
GeoPoint = 1,
/// <summary>
/// Geofence is specified by Wi-Fi access point.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Wifi,
/// <summary>
/// Geofence is specified by Bluetooth device.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Bluetooth
};
/// <summary>
/// Enumerations for the state of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public enum GeofenceState
{
/// <summary>
/// Uncertain state of geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Uncertain = 0,
/// <summary>
/// Geofence In state.
/// </summary>
+ /// <since_tizen>3</since_tizen>
In,
/// <summary>
/// Geofence Out state.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Out
};
/// <summary>
/// Enumerations for geofence management events.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public enum GeofenceEventType
{
/// <summary>
/// Geofence is added.
/// </summary>
+ /// <since_tizen>3</since_tizen>
FenceAdded = 0,
/// <summary>
/// Geofence is removed.
/// </summary>
+ /// <since_tizen>3</since_tizen>
FenceRemoved,
/// <summary>
/// Geofencing is started.
/// </summary>
+ /// <since_tizen>3</since_tizen>
FenceStarted,
/// <summary>
/// Geofencing is stopped.
/// </summary>
+ /// <since_tizen>3</since_tizen>
FenceStopped,
/// <summary>
/// Place is added.
/// </summary>
+ /// <since_tizen>3</since_tizen>
PlaceAdded = 0x10,
/// <summary>
/// Place is removed.
/// </summary>
+ /// <since_tizen>3</since_tizen>
PlaceRemoved,
/// <summary>
/// Place is updated.
/// </summary>
+ /// <since_tizen>3</since_tizen>
PlaceUpdated,
/// <summary>
/// Setting for geofencing is enabled.
/// </summary>
+ /// <since_tizen>3</since_tizen>
SettingEnabled = 0x20,
/// <summary>
/// Setting for geofencing is disabled.
/// </summary>
+ /// <since_tizen>3</since_tizen>
SettingDisabled
};
/// <summary>
/// Enumeration for the provider of proximity.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public enum ProximityProvider
{
/// <summary>
/// Proximity is specified by geospatial coordinate.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Location = 0,
/// <summary>
/// Proximity is specified by Wi-Fi access point.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Wifi,
/// <summary>
/// Proximity is specified by Bluetooth device.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Bluetooth,
/// <summary>
/// Proximity is specified by Bluetooth low energy device.
/// </summary>
+ /// <since_tizen>3</since_tizen>
BLE,
/// <summary>
/// Proximity is specified by Sensor.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Sensor
}
/// <summary>
/// Enumeration for the state of proximity.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public enum ProximityState
{
/// <summary>
/// Uncertain state of proximity.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Uncertain = 0,
/// <summary>
/// Far state of proximity.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Far,
/// <summary>
/// Far state of proximity.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Near,
/// <summary>
/// Immediate state of proximity.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Immediate
}
}
/// <summary>
/// Enum to give the type of error occured, if any.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public enum GeofenceError
{
/// <summary>
/// Successful.
/// </summary>
+ /// <since_tizen>3</since_tizen>
None = Tizen.Internals.Errors.ErrorCode.None,
/// <summary>
/// Out of memory.
/// </summary>
+ /// <since_tizen>3</since_tizen>
OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
/// <summary>
/// Invalid parameter.
/// </summary>
+ /// <since_tizen>3</since_tizen>
InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
/// <summary>
/// Permission denied.
/// </summary>
+ /// <since_tizen>3</since_tizen>
PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied,
/// <summary>
/// Not Supported.
/// </summary>
+ /// <since_tizen>3</since_tizen>
NotSupported = Tizen.Internals.Errors.ErrorCode.NotSupported,
/// <summary>
/// Geofence Manager is not initialized.
/// </summary>
+ /// <since_tizen>3</since_tizen>
NotInitialized = -0x02C00000 | 0x100 | 0x01,
/// <summary>
/// Invalid geofence ID.
/// </summary>
+ /// <since_tizen>3</since_tizen>
InvalidID = -0x02C00000 | 0x100 | 0x02,
/// <summary>
/// Exception occurs.
/// </summary>
+ /// <since_tizen>3</since_tizen>
Exception = -0x02C00000 | 0x100 | 0x03,
/// <summary>
/// Geofencing is already started.
/// </summary>
+ /// <since_tizen>3</since_tizen>
AlreadyStarted = -0x02C00000 | 0x100 | 0x04,
/// <summary>
/// Too many geofence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
TooManyGeofence = -0x02C00000 | 0x100 | 0x05,
/// <summary>
/// Error in GPS, Wi-Fi, or BT.
/// </summary>
+ /// <since_tizen>3</since_tizen>
IPC = -0x02C00000 | 0x100 | 0x06,
/// <summary>
/// DB error in the server side.
/// </summary>
+ /// <since_tizen>3</since_tizen>
DBFailed = -0x02C00000 | 0x100 | 0x07,
/// <summary>
/// Access to specified place is denied.
/// </summary>
+ /// <since_tizen>3</since_tizen>
PlaceAccessDenied = -0x02C00000 | 0x100 | 0x08,
/// <summary>
/// Access to specified geofence is denied.
/// </summary>
+ /// <since_tizen>3</since_tizen>
GeofenceAccessDenied = -0x02C00000 | 0x100 | 0x09
};
/// <summary>
/// Event arguments passed when Event is triggered to notify proximity state change.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class ProximityStateEventArgs : EventArgs
{
/// <summary>
/// Internal constructor.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="id">The geofence id.</param>
/// <param name="state">The proximity state.</param>
/// <param name="provider">The proximity provider.</param>
/// <summary>
/// The geofence id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int GeofenceId
{
get;
/// <summary>
/// The proximity state.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public ProximityState State
{
get;
/// <summary>
/// The proximity provider.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public ProximityProvider Provider
{
get;
/// <summary>
/// Event arguments passed when Event is triggered to notify Geofence state change.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class GeofenceStateEventArgs : EventArgs
{
/// <summary>
/// Internal constructor.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="fenceId">The specified geofence id.</param>
/// <param name="state">The geofence state.</param>
internal GeofenceStateEventArgs(int fenceId, GeofenceState state)
/// <summary>
/// The specified geofence id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int GeofenceId
{
get;
/// <summary>
/// The geofence state.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public GeofenceState State
{
get;
/// <summary>
/// Event arguments passed when Event occurs in geofence and place such as add, update, etc..
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class GeofenceResponseEventArgs : EventArgs
{
/// <summary>
/// Internal constructor.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId">The place id.</param>
/// <param name="fenceId">The specified geofence id.</param>
/// <param name="error">The error code for the particular action.</param>
/// <summary>
/// The place id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int PlaceId
{
get;
/// <summary>
/// The specified geofence id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public int FenceId
{
get;
/// <summary>
/// The error code for the particular action.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public GeofenceError ErrorCode
{
get;
/// <summary>
/// The result code for the particular place and geofence management.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public GeofenceEventType EventType
{
get;
/// <item>Results and errors for each event requested to geofence module</item>
/// </list>
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class GeofenceManager : IDisposable
{
private bool _disposed = false;
/// <summary>
/// Creates a new geofence manager.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <exception cref="OutOfMemoryException">Incase of OutOfMemory condition.</exception>
/// <exception cref="InvalidOperationException">Incase of any System error.</exception>
/// <exception cref="NotSupportedException">Incase of Geofence is not supported.</exception>
/// <summary>
/// Checks whether the geofence manager is available or not.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public static bool IsSupported
{
get
/// <summary>
/// Starts the geofencing service.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="geofenceId">The specified geofence id.</param>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <remarks>
/// <summary>
/// Stops the geofenceing service.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="geofenceId">The specified geofence id.</param>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <remarks>
/// <summary>
/// Invokes when a device enters or exits the given geofence, If this event is registered.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <remarks>
/// Call to Start() will invoke this event.
/// </remarks>
/// <summary>
/// Called when a proximity state of device is changed.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <remarks>
/// Call to Start() will invoke this event.
/// </remarks>
/// Called when the some event occurs in geofence and place such as add, update, etc..
/// The events of public geofence is also received if there are public geofences.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <remarks>
/// Call to Start() will invoke this event.
/// The value of place_id or geofence_id is -1 when the place id or geofence id is not assigned.
/// <summary>
/// Overloaded Dispose API for destroying the GeofenceManager Handle.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public void Dispose()
{
Dispose(true);
/// Allows to create a virtual fence as Geofence using GeofenceManager instance.
/// User can manage all the geofence/place related data and events.
/// </summary>
+ /// <since_tizen>3</since_tizen>
public class VirtualPerimeter
{
private IntPtr Handle;
/// <summary>
/// Creates a VirtualPerimeter which can be used to create virtual fence.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="manager">GeofenceManager instance.</param>
/// <exception cref="ArgumentException"> Incase of invlid parameter.</exception>
public VirtualPerimeter(GeofenceManager manager)
/// <summary>
/// Creates a new place for geofencing service.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="name">A place name to be created.</param>
/// <returns>The place id to be newly created on success.</returns>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <summary>
/// Updates the place name of a given place id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId">The specified place id.</param>
/// <param name="name">A new place name of the place id.</param>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <summary>
/// Removes the specific place for geofencing service.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId">The specified place id.</param>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <exception cref="ArgumentException">Incase of Invalid parameter.</exception>
/// <summary>
/// Adds a geofence for a given geofence manager.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="fence">The Geofence instance to be added.</param>
/// <returns>The geofence id to be newly created on success.</returns>
/// <remarks> The retun value will always be a number greater than zero.</remarks>
/// <summary>
/// Removes a geofence with a given geofence id.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="fenceId">The specified geofence id.</param>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <exception cref="ArgumentException">Incase of Invalid parameter.</exception>
/// <summary>
/// Gets the name of place.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId">The place id.</param>
/// <returns>The name of the place.</returns>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <summary>
/// Retrieves a list of places registered in the specified geofence manager.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <returns>list of places registered as PlaceData instance list.</returns>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <exception cref="InvalidOperationException">Incase of any System error.</exception>
/// <summary>
/// Retrieves a list of fences registered in the specified geofence manager.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <returns>list of FenceData instances registred for each Geofence.</returns>
/// <privilege>http://tizen.org/privilege/location</privilege>
/// <exception cref="InvalidOperationException">Incase of any System error.</exception>
/// <summary>
/// Retrieves a list of fences registered in the specified place.
/// </summary>
+ /// <since_tizen>3</since_tizen>
/// <param name="placeId"> The place id.</param>
/// <returns>list of FenceData instances registred for each Geofence for specified place.</returns>
/// <privilege>http://tizen.org/privilege/location</privilege>