diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
commit | 54b6cfa9a9e5b861a9930af873580d6dc20f773c (patch) | |
tree | 35051494d2af230dce54d6b31c6af8fc24091316 /test-runner/android/test/TestLocationProvider.java | |
download | frameworks_base-54b6cfa9a9e5b861a9930af873580d6dc20f773c.zip frameworks_base-54b6cfa9a9e5b861a9930af873580d6dc20f773c.tar.gz frameworks_base-54b6cfa9a9e5b861a9930af873580d6dc20f773c.tar.bz2 |
Initial Contribution
Diffstat (limited to 'test-runner/android/test/TestLocationProvider.java')
-rw-r--r-- | test-runner/android/test/TestLocationProvider.java | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/test-runner/android/test/TestLocationProvider.java b/test-runner/android/test/TestLocationProvider.java new file mode 100644 index 0000000..00c1ce8 --- /dev/null +++ b/test-runner/android/test/TestLocationProvider.java @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2007 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 android.test; + + +import android.location.Criteria; +import android.location.Location; +import android.location.LocationProviderImpl; +import android.os.Bundle; +import android.os.SystemClock; + +/** + * @hide - This is part of a framework that is under development and should not be used for + * active development. + */ +public class TestLocationProvider extends LocationProviderImpl { + + public static final String PROVIDER_NAME = "test"; + public static final double LAT = 0; + public static final double LON = 1; + public static final double ALTITUDE = 10000; + public static final float SPEED = 10; + public static final float BEARING = 1; + public static final int STATUS = AVAILABLE; + + private Location mLocation; + private boolean mEnabled; + + public TestLocationProvider() { + super(PROVIDER_NAME); + mLocation = new Location(PROVIDER_NAME); + updateLocation(); + } + + //LocationProvider methods + + @Override + public int getAccuracy() { + return Criteria.ACCURACY_COARSE; + } + + @Override + public int getPowerRequirement() { + return Criteria.NO_REQUIREMENT; + } + + @Override + public boolean hasMonetaryCost() { + return false; + } + + @Override + public boolean requiresCell() { + return false; + } + + @Override + public boolean requiresNetwork() { + return false; + } + + @Override + public boolean requiresSatellite() { + return false; + } + + @Override + public boolean supportsAltitude() { + return true; + } + + @Override + public boolean supportsBearing() { + return true; + } + + @Override + public boolean supportsSpeed() { + return true; + } + + //LocationProviderImpl methods + @Override + public void disable() { + mEnabled = false; + } + + @Override + public void enable() { + mEnabled = true; + } + + @Override + public boolean isEnabled() { + return mEnabled; + } + + @Override + public boolean getLocation(Location l) { + updateLocation(); + l.set(mLocation); + return true; + } + + @Override + public int getStatus(Bundle extras) { + return STATUS; + } + + private void updateLocation() { + long time = SystemClock.uptimeMillis(); + long multiplier = (time/5000)%500000; + mLocation.setLatitude(LAT*multiplier); + mLocation.setLongitude(LON*multiplier); + mLocation.setAltitude(ALTITUDE); + mLocation.setSpeed(SPEED); + mLocation.setBearing(BEARING*multiplier); + + Bundle extras = new Bundle(); + extras.putInt("extraTest", 24); + mLocation.setExtras(extras); + mLocation.setTime(time); + } + +} |