Home | History | Annotate | Download | only in location
      1 /*
      2  * Copyright (C) 2007 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/LICENSE-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 com.android.internal.location;
     18 
     19 import android.location.ILocationManager;
     20 import android.location.LocationProvider;
     21 
     22 /**
     23  * A stub implementation of LocationProvider used by LocationManager.
     24  * A DummyLocationProvider may be queried to determine the properties
     25  * of the provider whcih it shadows, but does not actually provide location
     26  * data.
     27  *
     28  * {@hide}
     29  */
     30 public class DummyLocationProvider extends LocationProvider {
     31 
     32     private static final String TAG = "DummyLocationProvider";
     33 
     34     String mName;
     35     boolean mRequiresNetwork;
     36     boolean mRequiresSatellite;
     37     boolean mRequiresCell;
     38     boolean mHasMonetaryCost;
     39     boolean mSupportsAltitude;
     40     boolean mSupportsSpeed;
     41     boolean mSupportsBearing;
     42     int mPowerRequirement;
     43     int mAccuracy;
     44 
     45     public DummyLocationProvider(String name, ILocationManager service) {
     46         super(name, service);
     47     }
     48 
     49     public void setRequiresNetwork(boolean requiresNetwork) {
     50         mRequiresNetwork = requiresNetwork;
     51     }
     52 
     53     public void setRequiresSatellite(boolean requiresSatellite) {
     54         mRequiresSatellite = requiresSatellite;
     55     }
     56 
     57     public void setRequiresCell(boolean requiresCell) {
     58         mRequiresCell = requiresCell;
     59     }
     60 
     61     public void setHasMonetaryCost(boolean hasMonetaryCost) {
     62         mHasMonetaryCost = hasMonetaryCost;
     63     }
     64 
     65     public void setSupportsAltitude(boolean supportsAltitude) {
     66         mSupportsAltitude = supportsAltitude;
     67     }
     68 
     69     public void setSupportsSpeed(boolean supportsSpeed) {
     70         mSupportsSpeed = supportsSpeed;
     71     }
     72 
     73     public void setSupportsBearing(boolean supportsBearing) {
     74         mSupportsBearing = supportsBearing;
     75     }
     76 
     77     public void setPowerRequirement(int powerRequirement) {
     78         mPowerRequirement = powerRequirement;
     79     }
     80 
     81     public void setAccuracy(int accuracy) {
     82         mAccuracy = accuracy;
     83     }
     84 
     85     /**
     86      * Returns true if the provider requires access to a
     87      * data network (e.g., the Internet), false otherwise.
     88      */
     89     public boolean requiresNetwork() {
     90         return mRequiresNetwork;
     91     }
     92 
     93     /**
     94      * Returns true if the provider requires access to a
     95      * satellite-based positioning system (e.g., GPS), false
     96      * otherwise.
     97      */
     98     public boolean requiresSatellite() {
     99         return mRequiresSatellite;
    100     }
    101 
    102     /**
    103      * Returns true if the provider requires access to an appropriate
    104      * cellular network (e.g., to make use of cell tower IDs), false
    105      * otherwise.
    106      */
    107     public boolean requiresCell() {
    108         return mRequiresCell;
    109     }
    110 
    111     /**
    112      * Returns true if the use of this provider may result in a
    113      * monetary charge to the user, false if use is free.  It is up to
    114      * each provider to give accurate information.
    115      */
    116     public boolean hasMonetaryCost() {
    117         return mHasMonetaryCost;
    118     }
    119 
    120     /**
    121      * Returns true if the provider is able to provide altitude
    122      * information, false otherwise.  A provider that reports altitude
    123      * under most circumstances but may occassionally not report it
    124      * should return true.
    125      */
    126     public boolean supportsAltitude() {
    127         return mSupportsAltitude;
    128     }
    129 
    130     /**
    131      * Returns true if the provider is able to provide speed
    132      * information, false otherwise.  A provider that reports speed
    133      * under most circumstances but may occassionally not report it
    134      * should return true.
    135      */
    136     public boolean supportsSpeed() {
    137         return mSupportsSpeed;
    138     }
    139 
    140     /**
    141      * Returns true if the provider is able to provide bearing
    142      * information, false otherwise.  A provider that reports bearing
    143      * under most circumstances but may occassionally not report it
    144      * should return true.
    145      */
    146     public boolean supportsBearing() {
    147         return mSupportsBearing;
    148     }
    149 
    150     /**
    151      * Returns the power requirement for this provider.
    152      *
    153      * @return the power requirement for this provider, as one of the
    154      * constants Criteria.POWER_REQUIREMENT_*.
    155      */
    156     public int getPowerRequirement() {
    157         return mPowerRequirement;
    158     }
    159 
    160     /**
    161      * Returns a constant describing the horizontal accuracy returned
    162      * by this provider.
    163      *
    164      * @return the horizontal accuracy for this provider, as one of the
    165      * constants Criteria.ACCURACY_*.
    166      */
    167     public int getAccuracy() {
    168         return mAccuracy;
    169     }
    170 }
    171 
    172