18ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh/* 28ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * Copyright (C) 2013 The Android Open Source Project 38ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 48ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * Licensed under the Apache License, Version 2.0 (the "License"); 58ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * you may not use this file except in compliance with the License. 68ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * You may obtain a copy of the License at 78ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 88ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * http://www.apache.org/licenses/LICENSE-2.0 98ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 108ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * Unless required by applicable law or agreed to in writing, software 118ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * distributed under the License is distributed on an "AS IS" BASIS, 128ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * See the License for the specific language governing permissions and 148ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * limitations under the License. 158ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh */ 168ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh 178ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganeshpackage android.hardware.location; 188ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh 198ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganeshimport android.location.Location; 208ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh 218ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh/** 228ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * The callback class associated with the APIs in {@link GeofenceHardware} 238ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh */ 248ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganeshpublic abstract class GeofenceHardwareCallback { 258ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh /** 268ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * The callback called when there is a transition to report for the specific 278ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * geofence. 288ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 298ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param geofenceId The geofence ID of the geofence 308ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param transition One of {@link GeofenceHardware#GEOFENCE_ENTERED}, 318ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_EXITED}, {@link GeofenceHardware#GEOFENCE_UNCERTAIN} 328ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param location The last known location according to the monitoring system. 338ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param timestamp The timestamp (elapsed real time in milliseconds) when the transition was 348ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * detected 358ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param monitoringType Type of the monitoring system. 368ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh */ 37da6508954a492f3dd4397e70e4fa08ee54bd2741Jaikumar Ganesh public void onGeofenceTransition(int geofenceId, int transition, Location location, 388ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh long timestamp, int monitoringType) { 398ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh } 408ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh 418ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh /** 428ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * The callback called to notify the success or failure of the add call. 438ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 448ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param geofenceId The ID of the geofence. 458ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param status One of {@link GeofenceHardware#GEOFENCE_SUCCESS}, 468ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_ERROR_ID_EXISTS}, 478ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_ERROR_INVALID_TRANSITION}, 488ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_ERROR_TOO_MANY_GEOFENCES}, 498ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_FAILURE} 508ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh */ 518ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh public void onGeofenceAdd(int geofenceId, int status) { 528ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh } 538ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh 548ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh /** 558ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * The callback called to notify the success or failure of the remove call. 568ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 578ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param geofenceId The ID of the geofence. 588ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param status One of {@link GeofenceHardware#GEOFENCE_SUCCESS}, 598ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_ERROR_ID_UNKNOWN}, 608ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_FAILURE} 618ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh */ 628ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh public void onGeofenceRemove(int geofenceId, int status) { 638ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh } 648ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh 658ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh /** 668ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * The callback called to notify the success or failure of the pause call. 678ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 688ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param geofenceId The ID of the geofence. 698ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param status One of {@link GeofenceHardware#GEOFENCE_SUCCESS}, 708ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_ERROR_ID_UNKNOWN}, 718ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_FAILURE} 728ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh */ 738ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh public void onGeofencePause(int geofenceId, int status) { 748ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh } 758ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh 768ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh /** 778ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * The callback called to notify the success or failure of the resume call. 788ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * 798ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param geofenceId The ID of the geofence. 808ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * @param status One of {@link GeofenceHardware#GEOFENCE_SUCCESS}, 818ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_ERROR_ID_UNKNOWN}, 828ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_ERROR_INVALID_TRANSITION}, 838ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh * {@link GeofenceHardware#GEOFENCE_FAILURE} 848ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh */ 858ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh public void onGeofenceResume(int geofenceId, int status) { 868ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh } 878ce470dd4ba0608abb6b5eae117cefca927af96bJaikumar Ganesh} 88