Apple Notification Center Service Client Module.
More...
|
enum | ble_ancs_c_evt_type_t {
BLE_ANCS_C_EVT_DISCOVER_COMPLETE,
BLE_ANCS_C_EVT_DISCOVER_FAILED,
BLE_ANCS_C_EVT_NOTIF,
BLE_ANCS_C_EVT_INVALID_NOTIF,
BLE_ANCS_C_EVT_NOTIF_ATTRIBUTE
} |
| Event types that are passed from client to application on an event. More...
|
|
enum | ble_ancs_c_category_id_values_t {
BLE_ANCS_CATEGORY_ID_OTHER,
BLE_ANCS_CATEGORY_ID_INCOMING_CALL,
BLE_ANCS_CATEGORY_ID_MISSED_CALL,
BLE_ANCS_CATEGORY_ID_VOICE_MAIL,
BLE_ANCS_CATEGORY_ID_SOCIAL,
BLE_ANCS_CATEGORY_ID_SCHEDULE,
BLE_ANCS_CATEGORY_ID_EMAIL,
BLE_ANCS_CATEGORY_ID_NEWS,
BLE_ANCS_CATEGORY_ID_HEALTH_AND_FITNESS,
BLE_ANCS_CATEGORY_ID_BUSINESS_AND_FINANCE,
BLE_ANCS_CATEGORY_ID_LOCATION,
BLE_ANCS_CATEGORY_ID_ENTERTAINMENT
} |
| Category IDs for iOS notifications. More...
|
|
enum | ble_ancs_c_evt_id_values_t {
BLE_ANCS_EVENT_ID_NOTIFICATION_ADDED,
BLE_ANCS_EVENT_ID_NOTIFICATION_MODIFIED,
BLE_ANCS_EVENT_ID_NOTIFICATION_REMOVED
} |
| Event IDs for iOS notifications. More...
|
|
enum | ble_ancs_c_command_id_values_t {
BLE_ANCS_COMMAND_ID_GET_NOTIF_ATTRIBUTES,
BLE_ANCS_COMMAND_ID_GET_APP_ATTRIBUTES,
BLE_ANCS_COMMAND_ID_GET_PERFORM_NOTIF_ACTION
} |
| Control point command IDs that the Notification Consumer can send to the Notification Provider. More...
|
|
enum | ble_ancs_c_notif_attr_id_values_t {
BLE_ANCS_NOTIF_ATTR_ID_APP_IDENTIFIER,
BLE_ANCS_NOTIF_ATTR_ID_TITLE,
BLE_ANCS_NOTIF_ATTR_ID_SUBTITLE,
BLE_ANCS_NOTIF_ATTR_ID_MESSAGE,
BLE_ANCS_NOTIF_ATTR_ID_MESSAGE_SIZE,
BLE_ANCS_NOTIF_ATTR_ID_DATE,
BLE_ANCS_NOTIF_ATTR_ID_POSITIVE_ACTION_LABEL,
BLE_ANCS_NOTIF_ATTR_ID_NEGATIVE_ACTION_LABEL
} |
| IDs for iOS notification attributes. More...
|
|
Apple Notification Center Service Client Module.
Disclaimer: This client implementation of the Apple Notification Center Service can and will be changed at any time by Nordic Semiconductor ASA.
Server implementations such as the ones found in iOS can be changed at any time by Apple and may cause this client implementation to stop working.
This module implements the Apple Notification Center Service (ANCS) client. This client can be used as a Notification Consumer (NC) that receives data notifications from a Notification Provider (NP). The NP is typically an iOS device acting as a server. For terminology and up-to-date specs, see http://developer.apple.com.
The term "notification" is used in two different meanings:
- An iOS notification is the data received from the Notification Provider.
- A GATTC notification is a way to transfer data with Bluetooth Smart. In this module, we receive iOS notifications using GATTC notifications. We use the full term (iOS notification or GATTC notification) where required.
- Note
- The application must propagate BLE stack events to this module by calling ble_ancs_c_on_ble_evt() from the SoftDevice Event Handler callback.
#define ANCS_UUID_CHAR_CONTROL_POINT 0xD8F3 |
16-bit control point UUID.
#define ANCS_UUID_CHAR_DATA_SOURCE 0xC6E9 |
#define ANCS_UUID_CHAR_NOTIFICATION_SOURCE 0x120D |
16-bit notification source UUID.
#define ANCS_UUID_SERVICE 0xF431 |
16-bit service UUID for the Apple Notification Center Service.
#define BLE_ANCS_ATTR_DATA_MAX 32 |
Maximum data length of an iOS notification attribute.
#define BLE_ANCS_EVENT_FLAG_IMPORTANT 1 |
0b......1. Important: Second (LSB) bit is set. All flags can be active at the same time.
#define BLE_ANCS_EVENT_FLAG_NEGATIVE_ACTION 4 |
0b...1.... Negative action: Fifth (LSB) bit is set. All flags can be active at the same time.
#define BLE_ANCS_EVENT_FLAG_POSITIVE_ACTION 3 |
0b....1... Positive action: Fourth (LSB) bit is set. All flags can be active at the same time.
#define BLE_ANCS_EVENT_FLAG_PREEXISTING 2 |
0b.....1.. Pre-existing: Third (LSB) bit is set. All flags can be active at the same time.
#define BLE_ANCS_EVENT_FLAG_SILENT 0 |
0b.......1 Silent: First (LSB) bit is set. All flags can be active at the same time.
#define BLE_ANCS_NB_OF_ATTRS 8 |
Number of iOS notification attributes: AppIdentifier, Title, Subtitle, Message, MessageSize, Date, PositiveActionLabel, NegativeActionLabel.
#define BLE_ANCS_NB_OF_CATEGORY_ID 12 |
Number of iOS notification categories: Other, Incoming Call, Missed Call, Voice Mail, Social, Schedule, Email, News, Health And Fitness, Business And Finance, Location, Entertainment.
#define BLE_ANCS_NB_OF_EVT_ID 3 |
Number of iOS notification events: Added, Modified, Removed.
#define BLE_ANCS_NOTIFICATION_DATA_LENGTH 8 |
Length of the iOS notification data.
8 bytes:
Event ID | Event flags | Category ID | Category count | Notification UID |
1 byte | 1 byte | 1 byte | 1 byte | 4 bytes |
Category IDs for iOS notifications.
Enumerator |
---|
BLE_ANCS_CATEGORY_ID_OTHER |
The iOS notification belongs to the "other" category.
|
BLE_ANCS_CATEGORY_ID_INCOMING_CALL |
The iOS notification belongs to the "Incoming Call" category.
|
BLE_ANCS_CATEGORY_ID_MISSED_CALL |
The iOS notification belongs to the "Missed Call" category.
|
BLE_ANCS_CATEGORY_ID_VOICE_MAIL |
The iOS notification belongs to the "Voice Mail" category.
|
BLE_ANCS_CATEGORY_ID_SOCIAL |
The iOS notification belongs to the "Social" category.
|
BLE_ANCS_CATEGORY_ID_SCHEDULE |
The iOS notification belongs to the "Schedule" category.
|
BLE_ANCS_CATEGORY_ID_EMAIL |
The iOS notification belongs to the "E-mail" category.
|
BLE_ANCS_CATEGORY_ID_NEWS |
The iOS notification belongs to the "News" category.
|
BLE_ANCS_CATEGORY_ID_HEALTH_AND_FITNESS |
The iOS notification belongs to the "Health and Fitness" category.
|
BLE_ANCS_CATEGORY_ID_BUSINESS_AND_FINANCE |
The iOS notification belongs to the "Buisness and Finance" category.
|
BLE_ANCS_CATEGORY_ID_LOCATION |
The iOS notification belongs to the "Location" category.
|
BLE_ANCS_CATEGORY_ID_ENTERTAINMENT |
The iOS notification belongs to the "Entertainment" category.
|
Control point command IDs that the Notification Consumer can send to the Notification Provider.
Enumerator |
---|
BLE_ANCS_COMMAND_ID_GET_NOTIF_ATTRIBUTES |
Requests attributes to be sent from the NP to the NC for a given notification.
|
BLE_ANCS_COMMAND_ID_GET_APP_ATTRIBUTES |
Requests attributes to be sent from the NP to the NC for a given iOS App.
|
BLE_ANCS_COMMAND_ID_GET_PERFORM_NOTIF_ACTION |
Requests an action to be performed on a given notification, for example dismiss an alarm.
|
Event IDs for iOS notifications.
Enumerator |
---|
BLE_ANCS_EVENT_ID_NOTIFICATION_ADDED |
The iOS notification was added.
|
BLE_ANCS_EVENT_ID_NOTIFICATION_MODIFIED |
The iOS notification was modified.
|
BLE_ANCS_EVENT_ID_NOTIFICATION_REMOVED |
The iOS notification was removed.
|
Event types that are passed from client to application on an event.
Enumerator |
---|
BLE_ANCS_C_EVT_DISCOVER_COMPLETE |
A successful connection has been established and the service was found on the connected peer.
|
BLE_ANCS_C_EVT_DISCOVER_FAILED |
It was not possible to discover the service or characteristics of the connected peer.
|
BLE_ANCS_C_EVT_NOTIF |
An iOS notification was received on the notification source control point.
|
BLE_ANCS_C_EVT_INVALID_NOTIF |
An iOS notification was received on the notification source control point, but the format is invalid.
|
BLE_ANCS_C_EVT_NOTIF_ATTRIBUTE |
A received iOS notification attribute has been parsed.
|
IDs for iOS notification attributes.
Enumerator |
---|
BLE_ANCS_NOTIF_ATTR_ID_APP_IDENTIFIER |
Identifies that the attribute data is of an "App Identifier" type.
|
BLE_ANCS_NOTIF_ATTR_ID_TITLE |
Identifies that the attribute data is a "Title".
|
BLE_ANCS_NOTIF_ATTR_ID_SUBTITLE |
Identifies that the attribute data is a "Subtitle".
|
BLE_ANCS_NOTIF_ATTR_ID_MESSAGE |
Identifies that the attribute data is a "Message".
|
BLE_ANCS_NOTIF_ATTR_ID_MESSAGE_SIZE |
Identifies that the attribute data is a "Message Size".
|
BLE_ANCS_NOTIF_ATTR_ID_DATE |
Identifies that the attribute data is a "Date".
|
BLE_ANCS_NOTIF_ATTR_ID_POSITIVE_ACTION_LABEL |
The notification has a "Positive action" that can be executed associated with it.
|
BLE_ANCS_NOTIF_ATTR_ID_NEGATIVE_ACTION_LABEL |
The notification has a "Negative action" that can be executed associated with it.
|
Function for registering attributes that will be requested if ble_ancs_c_request_attrs is called.
- Parameters
-
[in] | id | ID of the attribute that will be added. |
[in] | p_data | Pointer to a buffer where the data of the attribute can be stored. |
[in] | len | Length of the buffer where the data of the attribute can be stored. |
- Return values
-
NRF_SUCCESS | If all operations were successful. Otherwise, an error code is returned. |
uint32_t ble_ancs_c_data_source_notif_disable |
( |
const ble_ancs_c_t * |
p_ancs | ) |
|
Function for writing to the CCCD to disable data source notifications from the ANCS.
- Parameters
-
[in] | p_ancs | iOS notification structure. This structure must be supplied by the application. It identifies the particular client instance to use. |
- Return values
-
NRF_SUCCESS | If writing to the CCCD was successful. Otherwise, an error code is returned. |
uint32_t ble_ancs_c_data_source_notif_enable |
( |
const ble_ancs_c_t * |
p_ancs | ) |
|
Function for writing to the CCCD to enable data source notifications from the ANCS.
- Parameters
-
[in] | p_ancs | iOS notification structure. This structure must be supplied by the application. It identifies the particular client instance to use. |
- Return values
-
NRF_SUCCESS | If writing to the CCCD was successful. Otherwise, an error code is returned. |
Function for initializing the ANCS client.
- Parameters
-
[out] | p_ancs | ANCS client structure. This structure must be supplied by the application. It is initialized by this function and will later be used to identify this particular client instance. |
[in] | p_ancs_init | Information needed to initialize the client. |
- Return values
-
NRF_SUCCESS | If the client was initialized successfully. Otherwise, an error code is returned. |
uint32_t ble_ancs_c_notif_source_notif_disable |
( |
const ble_ancs_c_t * |
p_ancs | ) |
|
Function for writing to the CCCD to disable notifications from the ANCS.
- Parameters
-
[in] | p_ancs | iOS notification structure. This structure must be supplied by the application. It identifies the particular client instance to use. |
- Return values
-
NRF_SUCCESS | If writing to the CCCD was successful. Otherwise, an error code is returned. |
uint32_t ble_ancs_c_notif_source_notif_enable |
( |
const ble_ancs_c_t * |
p_ancs | ) |
|
Function for writing to the CCCD to enable notifications from the Apple Notification Service.
- Parameters
-
[in] | p_ancs | iOS notification structure. This structure must be supplied by the application. It identifies the particular client instance to use. |
- Return values
-
NRF_SUCCESS | If writing to the CCCD was successful. Otherwise, an error code is returned. |
Function for handling the application's BLE Stack events.
Handles all events from the BLE stack that are of interest to the ANCS client.
- Parameters
-
[in] | p_ancs | ANCS client structure. |
[in] | p_ble_evt | Event received from the BLE stack. |
Function for handling the ANCS client Device Manager events.
This function handles all events from the Device Manager that are of interest to the ANCS client. When reconnecting to the existing central and creating new bonds for handling service discovery and writing to the Apple Notification Control Point, the Notification Provider will send new and unread iOS notifications again.
- Parameters
-
[in] | p_ancs | ANCS client structure. |
[in] | p_handle | Pointer to the ANCS device handle. |
[in] | p_dm_evt | Event received from the Device Manager. |
Function for requesting attributes for a notification.
- Parameters
-
[in] | p_notif | Pointer to the notification whose attributes will be requested from the Notification Provider. |
- Return values
-
NRF_SUCCESS | If all operations were successful. Otherwise, an error code is returned. |
Apple Notification Center Service UUIDs.
Service UUID.
Notification source UUID.