blob: 3e3071a68a451fc39c7727d4cfbdac294745c59a [file] [log] [blame]
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.gnss@1.0;
/** GNSS Network Initiated callback interface. */
interface IGnssNiCallback {
/**
* GnssNiType constants
*/
@export(name="", value_prefix="GPS_NI_TYPE_")
enum GnssNiType : uint8_t {
VOICE = 1,
UMTS_SUPL = 2,
UMTS_CTRL_PLANE = 3,
EMERGENCY_SUPL = 4
};
/**
* GnssNiNotifyFlags constants
*/
@export(name="", value_prefix="GPS_NI_")
enum GnssNiNotifyFlags : uint32_t {
/** NI requires notification */
NEED_NOTIFY = 0x0001,
/** NI requires verification */
NEED_VERIFY = 0x0002,
/** NI requires privacy override, no notification/minimal trace */
PRIVACY_OVERRIDE = 0x0004,
};
/**
* GNSS NI responses, used to define the response in
* NI structures
*/
@export(name="", value_prefix="GPS_NI_")
enum GnssUserResponseType : uint8_t {
RESPONSE_ACCEPT = 1,
RESPONSE_DENY = 2,
RESPONSE_NORESP = 3,
};
/**
* NI data encoding scheme
*/
@export(name="", value_prefix="GPS_")
enum GnssNiEncodingType : int32_t {
ENC_NONE = 0,
ENC_SUPL_GSM_DEFAULT = 1,
ENC_SUPL_UTF8 = 2,
ENC_SUPL_UCS2 = 3,
ENC_UNKNOWN = -1,
};
/** Represents an NI request */
struct GnssNiNotification{
/**
* An ID generated by HAL to associate NI notifications and UI
* responses.
*/
int32_t notificationId;
/**
* A type used to distinguish different categories of NI
* events, such as VOICE, UMTS_SUPL etc.
*/
GnssNiType niType;
/**
* Notification/verification options, combinations of GnssNiNotifyFlags
* constants.
*/
bitfield<GnssNiNotifyFlags> notifyFlags;
/**
* Timeout period to wait for user response.
* Set to 0 for no timeout limit. Specified in seconds.
*/
uint32_t timeoutSec;
/**
* Default response when timeout.
*/
GnssUserResponseType defaultResponse;
/**
* String representing the requester of the network inititated location
* request.
*/
string requestorId;
/**
* Notification message. String representing the service(for eg. SUPL-service)
* who sent the network initiated location request.
*/
string notificationMessage;
/**
* requestorId decoding scheme.
*/
GnssNiEncodingType requestorIdEncoding;
/**
* notificationId decoding scheme
*/
GnssNiEncodingType notificationIdEncoding;
};
/**
* Callback with a network initiated request.
*
* @param notification network initiated request.
*/
niNotifyCb(GnssNiNotification notification);
};