| /* |
| * Copyright (C) 2013, 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/license/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.location; |
| |
| import android.hardware.location.IFusedLocationHardwareSink; |
| import android.location.FusedBatchOptions; |
| |
| /** |
| * Fused Location hardware interface. |
| * This interface is the basic set of supported functionality by Fused Hardware |
| * modules that offer Location batching capabilities. |
| * |
| * @hide |
| */ |
| interface IFusedLocationHardware { |
| /** |
| * Registers a sink with the Location Hardware object. |
| * |
| * @param eventSink The sink to register. |
| */ |
| void registerSink(in IFusedLocationHardwareSink eventSink); |
| |
| /** |
| * Unregisters a sink with the Location Hardware object. |
| * |
| * @param eventSink The sink to unregister. |
| */ |
| void unregisterSink(in IFusedLocationHardwareSink eventSink); |
| |
| /** |
| * Provides access to the batch size available in Hardware. |
| * |
| * @return The batch size the hardware supports. |
| */ |
| int getSupportedBatchSize(); |
| |
| /** |
| * Requests the Hardware to start batching locations. |
| * |
| * @param id An Id associated with the request. |
| * @param batchOptions The options required for batching. |
| * |
| * @throws RuntimeException if the request Id exists. |
| */ |
| void startBatching(in int id, in FusedBatchOptions batchOptions); |
| |
| /** |
| * Requests the Hardware to stop batching for the given Id. |
| * |
| * @param id The request that needs to be stopped. |
| * @throws RuntimeException if the request Id is unknown. |
| */ |
| void stopBatching(in int id); |
| |
| /** |
| * Updates a batching operation in progress. |
| * |
| * @param id The Id of the operation to update. |
| * @param batchOptions The options to apply to the given operation. |
| * |
| * @throws RuntimeException if the Id of the request is unknown. |
| */ |
| void updateBatchingOptions(in int id, in FusedBatchOptions batchOptions); |
| |
| /** |
| * Requests the most recent locations available in Hardware. |
| * This operation does not dequeue the locations, so still other batching |
| * events will continue working. |
| * |
| * @param batchSizeRequested The number of locations requested. |
| */ |
| void requestBatchOfLocations(in int batchSizeRequested); |
| |
| /** |
| * Flags if the Hardware supports injection of diagnostic data. |
| * |
| * @return True if data injection is supported, false otherwise. |
| */ |
| boolean supportsDiagnosticDataInjection(); |
| |
| /** |
| * Injects diagnostic data into the Hardware subsystem. |
| * |
| * @param data The data to inject. |
| * @throws RuntimeException if injection is not supported. |
| */ |
| void injectDiagnosticData(in String data); |
| |
| /** |
| * Flags if the Hardware supports injection of device context information. |
| * |
| * @return True if device context injection is supported, false otherwise. |
| */ |
| boolean supportsDeviceContextInjection(); |
| |
| /** |
| * Injects device context information into the Hardware subsystem. |
| * |
| * @param deviceEnabledContext The context to inject. |
| * @throws RuntimeException if injection is not supported. |
| */ |
| void injectDeviceContext(in int deviceEnabledContext); |
| } |