diff options
| author | Jaikumar Ganesh <jaikumar@google.com> | 2013-04-03 12:22:18 -0700 |
|---|---|---|
| committer | Jaikumar Ganesh <jaikumar@google.com> | 2013-04-10 15:25:07 -0700 |
| commit | 8ce470dd4ba0608abb6b5eae117cefca927af96b (patch) | |
| tree | e8746efbeec5ac1b39d7f594a1012514b44d491d /location/lib | |
| parent | 8d06cc6d871fce6d5d6b6283027d4625edd92550 (diff) | |
| download | frameworks_base-8ce470dd4ba0608abb6b5eae117cefca927af96b.zip frameworks_base-8ce470dd4ba0608abb6b5eae117cefca927af96b.tar.gz frameworks_base-8ce470dd4ba0608abb6b5eae117cefca927af96b.tar.bz2 | |
GPS Hardware geofencing.
Add support for doing geofencing in hardware.
Change-Id: I6d5015190e8d84e1f4beb1010ed977a71c1622d0
Diffstat (limited to 'location/lib')
| -rw-r--r-- | location/lib/java/com/android/location/provider/GeofenceProvider.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/location/lib/java/com/android/location/provider/GeofenceProvider.java b/location/lib/java/com/android/location/provider/GeofenceProvider.java new file mode 100644 index 0000000..2618f34 --- /dev/null +++ b/location/lib/java/com/android/location/provider/GeofenceProvider.java @@ -0,0 +1,67 @@ +/* + * 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/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 com.android.location.provider; + +import android.hardware.location.GeofenceHardware; +import android.hardware.location.IGeofenceHardware; +import android.os.IBinder; + +import android.location.IGeofenceProvider; +import android.util.Log; + +import java.lang.Long; + +/** + * Base class for geofence providers implemented as unbundled services. + * + * <p>Geofence providers can be implemented as services and return the result of + * {@link com.android.location.provider.GeofenceProvider#getBinder()} in its getBinder() method. + * + * <p>IMPORTANT: This class is effectively a public API for unbundled + * applications, and must remain API stable. See README.txt in the root + * of this package for more information. + */ +public abstract class GeofenceProvider { + + private GeofenceHardware mGeofenceHardware; + + private IGeofenceProvider.Stub mProvider = new IGeofenceProvider.Stub() { + public void setGeofenceHardware(IGeofenceHardware hardwareProxy) { + mGeofenceHardware = new GeofenceHardware(hardwareProxy); + onGeofenceHardwareChange(mGeofenceHardware); + } + }; + + /** + * Returns the Binder interface for the geofence provider. + * This is intended to be used for the onBind() method of + * a service that implements a geofence service. + * + * @return the IBinder instance for the provider + */ + public IBinder getBinder() { + return mProvider; + } + + /** + * Called when GeofenceHardware object becomes available. + * + * @param geofenceHardware Geofence Hardware object. This can be null + * when for some reason the service connection gets disconnected. + */ + public abstract void onGeofenceHardwareChange(GeofenceHardware geofenceHardware); +} |
