1

我创建了一个应用程序,它可以在 iPad/iPhone 上定位 GeoLocation 坐标,但即使在设备启用 GPS 的情况下,也无法在某些 Android 设备上执行此操作。它适用于某些 Android 设备(例如三星 Galaxy 标签 SCH-I800)和在其他一些(例如三星 Galaxy 标签 GT-P5113)上失败。

知道问题的可能原因是什么吗?

示例代码片段:

 <script type="text/javascript" 
 src="http://maps.google.com/maps/api/js?sensor=true"></script>
 <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true">   </script>
    <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script>

function onDeviceReady()
{  
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}

var onSuccess = function(position) {

            pos = new google.maps.LatLng(position.coords.latitude,
                                         position.coords.longitude);
            lat=position.coords.latitude;
            lng=position.coords.longitude;
            alert("lat: "+lat+" long "+lng); //i should get the lat/long here which i need to use further in my code   
         }

对于应用程序无法运行的设备,它将使用 onError 功能。

function onError(error) {

      alert("error code is: "+error.code);//it gives error code 3 when on such devices


        }
4

4 回答 4

1

在设置手表以在这些 Android 设备上使用 GPS 时,您需要设置“enableHighAccuracy”选项:

navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true });

另请参阅此答案:Phonegap Android 和 GPS 卫星

于 2012-12-27T09:05:44.523 回答
0

由于此错误,您的应用程序无法运行:

PositionError.TIMEOUT

当设备无法在 geolocationOptions 的超时属性中指定的时间内检索位置时返回。当与 geolocation.watchPosition 结合使用时,这个错误可能会在每超时毫秒被调用到 geolocationError 回调中。

于 2012-12-27T12:14:33.370 回答
0

将“enableHighAccuracy”选项设置为 false,然后如果您收到代码 2 错误(您有时可能会遇到),只需

菜单--->设置---->位置和安全

然后检查

使用无线网络。

这解决了我的问题,希望它也能解决你的问题......!

于 2013-04-28T13:48:00.253 回答
0

如果我的项目和我的客户坚持认为他可以进入地图并且它几乎可以立即找到 Hus 的地理位置,而在我的应用程序中它需要很长时间或者不起作用,我就会遇到这个问题。

解决方案是及时返回插件 git 存储库并找到已删除的 java 文件,并使用该版本。

发生的事情是插件维护者刚刚使用了本地浏览器地理定位,基本上根本没有使用插件,但在某些手机中它只是没有达到标准。另一种方法是在您的应用程序中使用人行横道。

我知道它不是一个“好”的解决方案,但它是获得可接受的性能所必需的。

于 2015-04-08T21:54:21.540 回答