1/* 2 * Copyright (C) 2018 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@2.0; 18 19import android.hardware.gnss.measurement_corrections@1.0::IMeasurementCorrections; 20import android.hardware.gnss.visibility_control@1.0::IGnssVisibilityControl; 21import @1.1::IGnss; 22 23import GnssLocation; 24import IGnssCallback; 25import IGnssConfiguration; 26import IGnssDebug; 27import IGnssMeasurement; 28import IAGnss; 29import IAGnssRil; 30import IGnssBatching; 31 32/** 33 * Represents the standard GNSS (Global Navigation Satellite System) interface. 34 * 35 * Due to the introduction of new GNSS HAL package android.hardware.gnss.visibility_control@1.0 36 * the interface @1.0::IGnssNi.hal and @1.0::IGnssNiCallback.hal are deprecated in this version 37 * and are not supported by the framework. The GNSS HAL implementation of this interface 38 * must return nullptr for the following @1.0::IGnss method. 39 * getExtensionGnssNi() generates (IGnssNi gnssNiIface); 40 */ 41interface IGnss extends @1.1::IGnss { 42 /** 43 * Opens the interface and provides the callback routines to the implementation of this 44 * interface. 45 * 46 * The framework calls this method to instruct the GPS engine to prepare for serving requests 47 * from the framework. The GNSS HAL implementation must respond to all GNSS requests from the 48 * framework upon successful return from this method until cleanup() method is called to 49 * close this interface. 50 * 51 * @param callback Callback interface for IGnss. 52 * 53 * @return success Returns true on success. 54 */ 55 setCallback_2_0(IGnssCallback callback) generates (bool success); 56 57 /** 58 * This method returns the IGnssConfiguration interface. 59 * 60 * @return gnssConfigurationIface Handle to the IGnssConfiguration interface. 61 */ 62 getExtensionGnssConfiguration_2_0() generates (IGnssConfiguration gnssConfigurationIface); 63 64 /** 65 * This method returns the IGnssDebug interface. 66 * 67 * @return gnssDebugIface Handle to the IGnssDebug interface. 68 */ 69 getExtensionGnssDebug_2_0() generates (IGnssDebug gnssDebugIface); 70 71 /** 72 * This method returns the IAGnss Interface. 73 * 74 * The getExtensionAGnss() must return nullptr as the @1.0::IAGnss interface is 75 * deprecated. 76 * 77 * @return aGnssIface Handle to the IAGnss interface. 78 */ 79 getExtensionAGnss_2_0() generates (IAGnss aGnssIface); 80 81 /** 82 * This method returns the IAGnssRil Interface. 83 * 84 * @return aGnssRilIface Handle to the IAGnssRil interface. 85 */ 86 getExtensionAGnssRil_2_0() generates (IAGnssRil aGnssRilIface); 87 88 /** 89 * This method returns the IGnssMeasurement interface. 90 * 91 * Exactly one of getExtensionGnssMeasurement(), getExtensionGnssMeasurement_1_1(), and 92 * getExtensionGnssMeasurement_2_0() methods must return a non-null handle, and the other 93 * methods must return nullptr. 94 * 95 * @return gnssMeasurementIface Handle to the IGnssMeasurement interface. 96 */ 97 getExtensionGnssMeasurement_2_0() generates (IGnssMeasurement gnssMeasurementIface); 98 99 /** 100 * This method returns the IMeasurementCorrections interface. 101 * 102 * @return measurementCorrectionsIface Handle to the IMeasurementCorrections interface. 103 */ 104 getExtensionMeasurementCorrections() 105 generates (IMeasurementCorrections measurementCorrectionsIface); 106 107 /** 108 * This method returns the IGnssVisibilityControl interface. 109 * 110 * @return visibilityControlIface Handle to the IGnssVisibilityControl interface. 111 */ 112 getExtensionVisibilityControl() generates (IGnssVisibilityControl visibilityControlIface); 113 114 /** 115 * This method returns the IGnssBatching interface. 116 * 117 * @return batchingIface Handle to the IGnssBatching interface. 118 */ 119 getExtensionGnssBatching_2_0() generates (IGnssBatching batchingIface); 120 121 /** 122 * Injects current location from the best available location provider. 123 * 124 * Unlike injectLocation, this method may inject a recent GNSS location from the HAL 125 * implementation, if that is the best available location known to the framework. 126 * 127 * @param location Location information from the best available location provider. 128 * 129 * @return success Returns true if successful. 130 */ 131 injectBestLocation_2_0(GnssLocation location) generates (bool success); 132};