/* * Copyright (C) 2017 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.1; import @1.0::IGnssCallback; /** * The interface is required for the HAL to communicate certain information * like status and location info back to the platform, the platform implements * the interfaces and passes a handle to the HAL. */ interface IGnssCallback extends @1.0::IGnssCallback { /** * Callback to inform framework of the GNSS HAL implementation model & version name. * * This is a user-visible string that identifies the model and version of the GNSS HAL. * For example "ABC Co., Baseband Part 1234, RF Part 567, Software version 3.14.159" * * For privacy reasons, this string must not contain any device-specific serial number or other * identifier that uniquely identifies an individual device. * * This must be called in response to IGnss::setCallback * * @param name String providing the name of the GNSS HAL implementation */ gnssNameCb(string name); /** * Callback for requesting Location. * * HAL implementation must call this when it wants the framework to provide locations to assist * with GNSS HAL operation, for example, to assist with time to first fix, error recovery, or to * supplement GNSS location for other clients of the GNSS HAL. * * If a request is made with independentFromGnss set to true, the framework must avoid * providing locations derived from GNSS locations (such as "fused" location), to help improve * information independence for situations such as error recovery. * * In response to this method call, GNSS HAL can expect zero, one, or more calls to * IGnss::injectLocation or IGnss::injectBestLocation, dependent on availability of location * from other sources, which may happen at some arbitrary delay. Generally speaking, HAL * implementations must be able to handle calls to IGnss::injectLocation or * IGnss::injectBestLocation at any time. * * @param independentFromGnss True if requesting a location that is independent from GNSS. */ gnssRequestLocationCb(bool independentFromGnss); };