half GPS problems fixed..Device.Location.init works nd can get first GPS read

This commit is contained in:
Fred Grott 2009-01-16 07:02:43 -06:00 committed by fredgrott
parent fe74ca3ec7
commit 6e59af7e0c
3 changed files with 30 additions and 22 deletions

View File

@ -158,7 +158,7 @@ var Device = {
Device.uuid = window.IPodGap.getUuid();
Device.gapVersion = window.IPoddGap.getVersion();
Device.gapVersion = window.IPodGap.getVersion();
} else
{
@ -178,28 +178,34 @@ var Device = {
exec: function(command) {
// Different platforms have different ways the js browser bridge is called
// to get a native object so we handle each difference
//
if (Device.available || Device.whatPlatform == "IPhone") {
if ( Device.whatPlatform == "IPhone") {
try {
document.location = "gap:" + command;
} catch(e) {
console.log("Command '" + command + "' has not been executed, because of exception: " + e);
alert("Error executing command '" + command + "'.")
}
} else
if ( Device.whatPlatform == "IPod") {
try {
document.location = "gap:" + command;
} catch(e) {
console.log("Command '" + command + "' has not been executed, because of exception: " + e);
alert("Error executing command '" + command + "'.")
}
}
if (Device.available || Device.whatPlatform == "IPod") {
} else
if (Device.whatPlatform == "Android" || command == "getloc") {
try {
document.location = "gap:" + command;
} catch(e) {
console.log("Command '" + command + "' has not been executed, because of exception: " + e);
alert("Error executing command '" + command + "'.")
}
}
if (Device.available || Device.whatPlatform == "Android" || command == "getloc") {
try {
document.location = "javascript:" + "window.DroidGap.getLocation()";
alert('document.location=' + document.location);
alert('start here');
document.location="javascript:window.DroidGap.getLocation()";
alert('window.DroidGap.getLocation()=' + window.DroidGap.getLocation());
} catch(e) {
console.log("Command '" + command + "' has not been executed, because of exception: " + e);
alert("Error executing command '" + command + "'.")
@ -217,7 +223,8 @@ var Device = {
init: function() {
Device.exec("getloc");
alert('initialized Location function and getloc was called');
alert(' getloc was called');
},
set: function(lat, lon) {
@ -275,6 +282,7 @@ var Device = {
}
function gotLocation(lat, lon) {
alert('gotLocation lat=' + lat + " gotLocation lon=" + lon);
return Device.Location.set(lat, lon)
}

View File

@ -9,18 +9,17 @@
<style type="text/css" media="screen">@import "file:///android_asset/iui.css";</style>
<script type="application/x-javascript" src="file:///android_asset/iui.js"></script>
<script type="application/x-javascript" src="file:///android_asset/gap.js"></script>
<!-- iBug from JoeHewitt.com requires a certain iBug.js script located in
the directory you launched the mini python server component of iBug
in the format of src=http://hostname:port/iBug.js
if you are not using to debug comment out
-->
<!-- <script type="application/x-javascript" src="http://192.168.1.20:1840/ibug.js"></script> -->
<script>
initGap = function() {
// Device.init() initializes OS-Device values
Device.init();
// Device.Location.callback = updateLocation sets to funciotn updateLocation so that lat and lon can be passed
Device.Location.callback = updateLocation;
// Device.Location.init() to initalize location
//Device.Acceleration.callback = updateAccel;
}
@ -46,6 +45,7 @@ updateSettings = function() {
}
updateLocation = function(lat,lon) {
alert('lat=' + lat + ' lon=' + lon);
$('lat').value = lat;
$('lon').value = lon;
}
@ -115,7 +115,7 @@ addLoadEvent(initGap);
</div>
<div id="geo" title="Geo Location" class="panel">
<form id="searchForm" action="POST">
<h2>Location</h2>
<fieldset>
<div class="row">
@ -127,10 +127,10 @@ addLoadEvent(initGap);
<input disabled="enabled" name="lon" id="lon" value="" type="text"></input>
</div>
<div class="row">
<a class="button blueButton" type="submit" onclick="Device.Location.init();">Update Location</a>
<a class="button blueButton" type="submit" onclick="updateLocation();">Update Location</a>
</div>
</fieldset>
</form>
</div>
<div id="accel" title="Accelerometer" class="panel">

View File

@ -28,6 +28,7 @@ import android.hardware.SensorManager;
import android.location.Location;
import android.location.LocationManager;
import android.location.LocationListener;
import android.location.LocationProvider;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
@ -49,6 +50,7 @@ public class PhoneGap{
private WebView mAppView;
private GpsListener mGps;
private NetworkListener mNetwork;
protected LocationProvider provider;
public PhoneGap(Context ctx, Handler handler, WebView appView) {
this.mCtx = ctx;
@ -84,11 +86,9 @@ public class PhoneGap{
vibrator.vibrate(pattern);
}
/*
* Android requires a provider, since it can fall back on triangulation and other means as well as GPS
*/
public void getLocation(final String provider){
public void getLocation( ){
mHandler.post(new Runnable() {
public void run() {
GeoTuple geoloc = new GeoTuple();