是否有可能制作一个基于位置工作的Android应用程序,例如当你开始工作时,该应用程序可能会关闭WiFi或蓝牙或更改任何其他系统设置以节省电池或什么?
应用程序需要用户进入他们希望应用程序开始工作的位置,例如他们的地址,当手机看到他们已到达此位置时,它将开始工作。我想这样做,但我不知道从哪里开始。
我已经有了一些Android应用程序开发经验。
答案 0 :(得分:1)
是的,这是可能的。我使用相同的概念进行了大约三次应用。
您需要创建一个中心点并为其定义半径。 然后,您需要计算当前位置与特定中心点的距离,如果距离小于或等于半径,则触发打开所需的服务。 在android中你可以使用
LocationManager class
用于收集数据。如果你想要更多的帮助,我也可以提供相同的帮助。
答案 1 :(得分:0)
我已经在Windows Phone上玩过这样的概念了一段时间,我认为这也适用于Android。
基本上,您可以使用设备的GPS来检测您的位置,然后将其与用户保存的位置进行比较。如果位置在保存的设置范围内,请执行操作。
然而,GPS的使用耗尽了电池电量,所以你必须尝试一下,使其成为一种有效的方法。答案 2 :(得分:0)
你有没有尝试过GeoFencing,它非常酷。它允许您定义中心点和半径。一旦用户输入此半径,您将获得回调或pendingIntent。你可以在回调中做你想做的事。
您可以获取客户的地址,并在他们的位置周围建立地理围栏。
编辑:
如果您选择不使用GeoFenceing
(出于任何原因),请注意LocationManager
在大多数手机(三星)上都是非常错误和不稳定的。
而是使用LocationClient
来处理所有垃圾LocationManager
与我们一起处理并提供更快的位置,更少的电池和定制的准确性。
编辑:
如果有人试图说服你,请检查this。来自谷歌开发人员的视频,以及他们为什么LocationManager
糟透了,以及为什么他们知道并帮助我们弄清楚传感器为整个解决方案添加的价值。
修改:解决方案的设计 你需要2个地理围栏 1)外面,你可以硬编码到距离办公室500米的假想。从那时起,你可以开始寻找wifizones 2)一旦找到wifizone,保存gps和距其地址点的距离。那是你的内心半径。
1 Geofence由您的安装定义,第二个地理围栏由您的运行时定义。
第二个地理围栏,此后将用于禁用GPS(仅在您决定使用LocationManager
时)。如果不是你不需要这个,LocationClient
会做它最擅长的事情。