1 /* 2 * Copyright (C) 2013 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/LICENS E-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 17 package android.hardware.location; 18 19 import android.location.IFusedGeofenceHardware; 20 import android.location.IGpsGeofenceHardware; 21 import android.hardware.location.GeofenceHardwareRequestParcelable; 22 import android.hardware.location.IGeofenceHardwareCallback; 23 import android.hardware.location.IGeofenceHardwareMonitorCallback; 24 25 /** @hide */ 26 interface IGeofenceHardware { setGpsGeofenceHardware(in IGpsGeofenceHardware service)27 void setGpsGeofenceHardware(in IGpsGeofenceHardware service); setFusedGeofenceHardware(in IFusedGeofenceHardware service)28 void setFusedGeofenceHardware(in IFusedGeofenceHardware service); 29 @EnforcePermission("LOCATION_HARDWARE") getMonitoringTypes()30 int[] getMonitoringTypes(); 31 @EnforcePermission("LOCATION_HARDWARE") getStatusOfMonitoringType(int monitoringType)32 int getStatusOfMonitoringType(int monitoringType); 33 @EnforcePermission("LOCATION_HARDWARE") addCircularFence( int monitoringType, in GeofenceHardwareRequestParcelable request, in IGeofenceHardwareCallback callback)34 boolean addCircularFence( 35 int monitoringType, 36 in GeofenceHardwareRequestParcelable request, 37 in IGeofenceHardwareCallback callback); 38 @EnforcePermission("LOCATION_HARDWARE") removeGeofence(int id, int monitoringType)39 boolean removeGeofence(int id, int monitoringType); 40 @EnforcePermission("LOCATION_HARDWARE") pauseGeofence(int id, int monitoringType)41 boolean pauseGeofence(int id, int monitoringType); 42 @EnforcePermission("LOCATION_HARDWARE") resumeGeofence(int id, int monitoringType, int monitorTransitions)43 boolean resumeGeofence(int id, int monitoringType, int monitorTransitions); 44 @EnforcePermission("LOCATION_HARDWARE") registerForMonitorStateChangeCallback(int monitoringType, IGeofenceHardwareMonitorCallback callback)45 boolean registerForMonitorStateChangeCallback(int monitoringType, 46 IGeofenceHardwareMonitorCallback callback); 47 @EnforcePermission("LOCATION_HARDWARE") unregisterForMonitorStateChangeCallback(int monitoringType, IGeofenceHardwareMonitorCallback callback)48 boolean unregisterForMonitorStateChangeCallback(int monitoringType, 49 IGeofenceHardwareMonitorCallback callback); 50 } 51