1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.hardware.gnss@1.0; 18 19/** GNSS Network Initiated callback interface. */ 20interface IGnssNiCallback { 21 /** 22 * GnssNiType constants 23 */ 24 @export(name="", value_prefix="GPS_NI_TYPE_") 25 enum GnssNiType : uint8_t { 26 VOICE = 1, 27 UMTS_SUPL = 2, 28 UMTS_CTRL_PLANE = 3, 29 EMERGENCY_SUPL = 4 30 }; 31 32 /** 33 * GnssNiNotifyFlags constants 34 */ 35 @export(name="", value_prefix="GPS_NI_") 36 enum GnssNiNotifyFlags : uint32_t { 37 /** NI requires notification */ 38 NEED_NOTIFY = 0x0001, 39 /** NI requires verification */ 40 NEED_VERIFY = 0x0002, 41 /** NI requires privacy override, no notification/minimal trace */ 42 PRIVACY_OVERRIDE = 0x0004, 43 }; 44 45 /** 46 * GNSS NI responses, used to define the response in 47 * NI structures 48 */ 49 @export(name="", value_prefix="GPS_NI_") 50 enum GnssUserResponseType : uint8_t { 51 RESPONSE_ACCEPT = 1, 52 RESPONSE_DENY = 2, 53 RESPONSE_NORESP = 3, 54 }; 55 56 /** 57 * NI data encoding scheme 58 */ 59 @export(name="", value_prefix="GPS_") 60 enum GnssNiEncodingType : int32_t { 61 ENC_NONE = 0, 62 ENC_SUPL_GSM_DEFAULT = 1, 63 ENC_SUPL_UTF8 = 2, 64 ENC_SUPL_UCS2 = 3, 65 ENC_UNKNOWN = -1, 66 }; 67 68 /** Represents an NI request */ 69 struct GnssNiNotification{ 70 /** 71 * An ID generated by HAL to associate NI notifications and UI 72 * responses. 73 */ 74 int32_t notificationId; 75 76 /** 77 * A type used to distinguish different categories of NI 78 * events, such as VOICE, UMTS_SUPL etc. 79 */ 80 GnssNiType niType; 81 82 /** 83 * Notification/verification options, combinations of GnssNiNotifyFlags 84 * constants. 85 */ 86 bitfield<GnssNiNotifyFlags> notifyFlags; 87 88 /** 89 * Timeout period to wait for user response. 90 * Set to 0 for no timeout limit. Specified in seconds. 91 */ 92 uint32_t timeoutSec; 93 94 /** 95 * Default response when timeout. 96 */ 97 GnssUserResponseType defaultResponse; 98 99 /** 100 * String representing the requester of the network inititated location 101 * request. 102 */ 103 string requestorId; 104 105 /** 106 * Notification message. String representing the service(for eg. SUPL-service) 107 * who sent the network initiated location request. 108 */ 109 string notificationMessage; 110 111 /** 112 * requestorId decoding scheme. 113 */ 114 GnssNiEncodingType requestorIdEncoding; 115 116 /** 117 * notificationId decoding scheme 118 */ 119 GnssNiEncodingType notificationIdEncoding; 120 }; 121 122 /** 123 * Callback with a network initiated request. 124 * 125 * @param notification network initiated request. 126 */ 127 niNotifyCb(GnssNiNotification notification); 128}; 129