summaryrefslogtreecommitdiffstats
path: root/location/lib
diff options
context:
space:
mode:
authorJaikumar Ganesh <jaikumar@google.com>2013-04-03 12:22:18 -0700
committerJaikumar Ganesh <jaikumar@google.com>2013-04-10 15:25:07 -0700
commit8ce470dd4ba0608abb6b5eae117cefca927af96b (patch)
treee8746efbeec5ac1b39d7f594a1012514b44d491d /location/lib
parent8d06cc6d871fce6d5d6b6283027d4625edd92550 (diff)
downloadframeworks_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.java67
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);
+}