是否可以制作一个基于位置工作的 Android 应用程序,例如,当您开始工作时,该应用程序可能会关闭 WiFi 或蓝牙或更改任何其他系统设置以节省电池或其他内容?
该应用程序将要求用户输入他们希望应用程序开始工作的位置,例如他们的地址,当手机看到他们已到达该位置时,它将开始工作。我想做这个,但不知道从哪里开始。
我已经有一些 Android 应用程序开发经验。
是的,这绝对是可能的。我已经开发了大约三个具有相同概念的应用程序。
您需要创建一个中心点并为其定义半径。 然后,您需要计算当前位置与该特定中心点的距离,如果您的距离小于或等于半径,则触发打开您想要的服务。 在 Android 中你可以使用
LocationManager class
用于收集数据。如果您需要更多帮助,我也可以提供相同的帮助。
我在 Windows Phone 上尝试过这样的概念有一段时间了,我认为这也适用于 Android。
基本上,您可以使用设备的 GPS 来检测您的位置,然后将其与用户保存的位置进行比较。如果位置位于已保存设置的范围内,请执行操作。
使用 GPS 会消耗电池电量,因此您必须进行一些尝试才能使其成为一种有效的方法。
您尝试过地理围栏吗,它真的很酷。它允许您定义中心点和半径。一旦用户进入此半径,您就会收到回调或悬而未决的Intent。您可以在回调中做您想做的事情。
您可以获取客户的地址并围绕他们的位置建立地理围栏。
编辑:
如果您选择不使用
GeoFenceing
(无论出于何种原因),请注意 LocationManager
在大多数手机(三星)上都存在严重错误且不稳定。
而是使用
LocationClient
,它会处理 LocationManager
留给我们处理的所有废话,并提供更快的定位、更少的电池和定制的准确性。
编辑:
如果有人试图说服您,请查看this。来自谷歌开发人员的视频以及他们谈论为什么
LocationManager
很糟糕,以及为什么他们知道并帮助我们找出传感器为整个解决方案添加的价值。
编辑:解决方案的设计 您需要 2 个地理围栏 1) 在外部,您可以将其硬编码为距办公室的假想 500 m。从那时起你就可以开始寻找wifizones 2) 找到 wifizone 后,保存 GPS 以及距其地址点的距离。那是你的内半径。
1 地理围栏由您的安装定义,第二个地理围栏由您的运行时定义。
第二个地理围栏,此后可用于禁用 GPS(仅当您决定使用
LocationManager
时)。如果不是,您就不需要这个,LocationClient
将做它最擅长的事情。
当然!创建基于位置的 Android 应用程序不仅是可能的,而且可以成为增强用户体验的宝贵补充。如果您正在寻找有关创建基于位置的应用程序的综合指南,请查看这篇文章如何创建基于位置的应用程序。 Saigon Technology 是越南顶级软件开发公司之一,其这篇文章将指导您完成成功开发具有基于位置功能的 Android 应用程序所需的分步流程、最佳实践和技巧。