当应用程序在cordova中打开时,以编程方式启用设备的GPS

时间:2015-06-23 08:37:57

标签: angularjs cordova ionic cordova-plugins

我一直在使用angularJS前端的cordova离子应用程序。这个应用程序启动时,设备应该检查GPS的状态是否打开,如果没有打开,则自动启用它。我没有找到任何可以完成这项任务的科尔多瓦事件。如何在应用程序启动时在deviceready事件或其他任何事情上以编程方式完成?

1 个答案:

答案 0 :(得分:0)

您可以在调用getCurrentPosition时检查geolocationError的PositionError参数中的错误代码。我猜测,当gps未启用时,它将是PositionError.PERMISSION_DENIED;当启用gps时,它会是PositionError.POSITION_UNAVAILABLE或PositionError.TIMEOUT,但还有其他问题。

请注意,这取决于平台。你可能不得不写一个人为的错误信息,上面写着"无法获得当前位置。 GPS信号较弱或GPS已关闭"。

你可以尝试的一件事是用一个非常小的超时调用getCurrentPosition,比如1 ms。如果它说权限被拒绝,您可以断定gps已被禁用,如果超时,您可以假设已启用gps。我没有时间对此进行测试,您可以根据测试结果编辑此答案。

您可以尝试的另一件事是使用android的诊断phonegap插件。你必须确保你也使用其他平台的插件,但它们也都在那里。

http://ngcordova.com/docs/plugins/geolocation/