package esolutions4you.B4A.moclocationprovider;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import anywheresoftware.b4a.BA.Author;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.Version;
@BA.ShortName("moclocationprovider")
@BA.Author("bitstra")
@BA.Version(1.0F)
public class moclocationprovider
{
public moclocationprovider() {}
public static void enableMockProvider(Context ctx)
{
LocationManager mLocationManager = (LocationManager)ctx.getSystemService("location");
mLocationManager.addTestProvider(
"gps",
false,
false,
false,
false,
false,
false,
false,
3,
1);
mLocationManager.setTestProviderEnabled("gps", true);
mLocationManager.setTestProviderStatus(
"gps",
2,
null,
System.currentTimeMillis());
}
public static void disableMockProvider(Context ctx)
{
LocationManager mLocationManager = (LocationManager)ctx.getSystemService("location");
if (mLocationManager.getProvider("gps") != null)
{
mLocationManager.clearTestProviderEnabled("gps");
mLocationManager.clearTestProviderStatus("gps");
mLocationManager.clearTestProviderLocation("gps");
mLocationManager.removeTestProvider("gps");
}
}
public static void publishMockLocation(String latitude, String ns, String longitude, String we, double altitude, float speed, float bearing, float accuracy, Context ctx)
{
LocationManager mLocationManager = (LocationManager)ctx.getSystemService("location");
String lat_deg = latitude.substring(0, 2);
String lat_min1 = latitude.substring(2, 4);
String lat_min2 = latitude.substring(5);
String lat_min3 = "0." + lat_min1 + lat_min2;
float lat_dec = Float.parseFloat(lat_min3) / 0.6F;
float lat_val = Float.parseFloat(lat_deg) + lat_dec;
if (!ns.equals("N"))
{
lat_val *= -1.0F;
}
String lon_deg = longitude.substring(0, 3);
String lon_min1 = longitude.substring(3, 5);
String lon_min2 = longitude.substring(6);
String lon_min3 = "0." + lon_min1 + lon_min2;
float lon_dec = Float.parseFloat(lon_min3) / 0.6F;
float lon_val = Float.parseFloat(lon_deg) + lon_dec;
if (!we.equals("E"))
{
lon_val *= -1.0F;
}
Location newLocation = new Location("gps");
newLocation.setLatitude(lat_val);
newLocation.setLongitude(lon_val);
newLocation.setAltitude(altitude);
newLocation.setSpeed(speed);
newLocation.setBearing(bearing);
newLocation.setTime(System.currentTimeMillis());
newLocation.setAccuracy(accuracy);
mLocationManager.setTestProviderEnabled("gps", true);
mLocationManager.setTestProviderStatus(
"gps",
2,
null,
System.currentTimeMillis());
mLocationManager.setTestProviderLocation(
"gps",
newLocation);
}
}