访问cordova地理定位中的模拟蓝牙GPS坐标

时间:2016-03-09 18:21:30

标签: javascript android html5 cordova gps

我有一个使用geolocation插件的cordova应用程序。我正在尝试使用外部蓝牙天线(Garmin GLO)来获得更精确的地理位置。 代码本身相对简单(例如,对于所有意图和目的,与http://terokarvinen.com/2015/gps-geolocation-in-cordova-and-android相同)使用:

navigator.geolocation.getCurrentPosition(geolocationSuccess,[geolocationError],[geolocationOptions]);

对于其他应用程序,要使用蓝牙GPS,我只需使用蓝牙GPS应用程序(https://play.google.com/store/apps/details?id=googoo.android.btgps&hl=fr)连接到蓝牙GPS,该应用程序具有模拟提供程序以“替换”内部GPS。事先,我当然要配对GPS,在开发设置中启用模拟位置等。然后通过模拟提供商使用蓝牙GPS的地理定位数据而不是内部GPS。

但是,当我尝试对我的cordova应用程序执行相同操作时,不使用模拟位置并且不接收任何位置(超时错误)。使用的权限是:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />

我在我的应用程序中使用了cordova-plugin-mock-location来测试模拟位置,它确实如此。我已经尝试过cordova-plugin-advanced-geolocation而不是另一个,但是同样的问题发生了(没有从模拟提供程序返回)。

如何使用模拟GPS提供程序在我的应用程序中使用接收器? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

如果其他人遇到类似问题,我终于能够使用GPSLocation插件(https://github.com/louisbl/cordova-plugin-gpslocation)使用本机代码而不是HTML5而不是Geolocation插件({{3} })。

出于某种原因,基本地理位置插件似乎“冻结”#34;当模拟GPS位置处于活动状态时位置请求:当模拟被禁用时,模拟期间发出的多个地理位置请求似乎仅被发送并且onSuccess被接收。

希望这有帮助!