对于个人项目,我正在尝试检测Android设备何时与某人驾驶。我最初想过使用GPS来确定平均速度,但决定消耗功率并要求用户始终启用GPS。我听说有人可以告诉有人切换手机信号塔(在Android和iOS上),但有广播意图吗?我对Android开发非常陌生,所以当我相信该设备处于移动的汽车时,我希望能够注册广播接收器。
我不确定我是否可以创建自己的广播意图,并且我认为我不能依赖后台进程来始终运行,因为如果需要内存,android可能会杀死它。
作为旁注,我注意到一些应用程序,比如skype,有一个后台进程,即使我强行杀死它也会自动重启。他们如何做到这一点?我的想法是有一个广播接收器,用于设备何时移动,打开等等,以重新启动后台进程......这就是他们的工作吗?
感谢您的任何信息!
答案 0 :(得分:3)
我认为以下教程可以帮到你一点。我仍然不确定是否可以在广播接收器中捕获位置更改更新。但您也可以编写您的服务(通常不会被通常的应用程序杀死),它会轮询位置信息并检查是否发生了更改。
我希望这会有所帮助。此致
答案 1 :(得分:3)
如果您使用GOOGLE PLAY SERVICE
为您提供API,您可以获得有关此
的详细信息适用于所有情况,例如车辆的移动,行走,站立等。
此外,为您提供各种情况下的可靠性水平
这是一个很好解释的链接:
(http://developer.android.com/training/location/activity-recognition.html)
链接到文档:
(https://developer.android.com/reference/com/google/android/gms/location/ActivityRecognition.html)
(https://developer.android.com/reference/com/google/android/gms/location/DetectedActivity.html)
答案 2 :(得分:2)
要获得更可靠的服务,请查看START_STICKY:http://developer.android.com/reference/android/app/Service.html#START_STICKY
答案 3 :(得分:1)
我建议GPS会给你更好的运动指示,因为你可能很少更换塔。即使是能够使用塔信号对您的位置进行三角测量的映射应用程序也非常不准确。通常即使信号非常好,他们也无法在1600米范围内对您的位置进行三角测量。
答案 4 :(得分:1)
您是否需要更改位置或是您正在寻找的设备移动?如果您只是在寻找移动http://developer.android.com/reference/android/hardware/SensorManager.html,那么这是一个很好的资源。
答案 5 :(得分:0)
你也可以考虑询问用户他们的车里是否有蓝牙套件。如果他们有你可以找到这个配对的名称,并在连接时你知道他们在车里(或接近它)。