GPS服务在后台运行

时间:2017-01-28 20:05:01

标签: android gps location usb listener

我有一个要求,我必须从连接到gps设备的android mobile的usb获取数据,每当我的任何应用程序要求时,数据应该递归地提供。

像这样的东西应该作为位置监听器。

我可以在android中使用什么,以便可以随时从这个usb获取数据到应用程序。

1 个答案:

答案 0 :(得分:0)

这是进程间通信。 android中IPC的主要方法是使用服务,参见https://developers.android.com/guide/components/processes-and-threads.html#IPC

https://developers.android.com/guide/components/bound-services.html#Binding

您可以在后台运行ServiceIntentService,然后在需要GPS位置时绑定(bindService())或解除绑定(unbindService()

使用android系统[!]服务LocationListener在后​​台使用内部GPS的示例位于http://www.stackoverflow.com/questions/28535703/best-way-to-get-user-gps-location-in-background-in-android

您必须以不同方式执行此操作,因为您的服务不是系统服务

所以写一个后台GPS服务(这是谷歌所说的最佳做法,我会使用服务代替IntentService - > https://developers.android.com/training/best-background.html)然后你的(自编)应用程序可以绑定到GPS服务获取数据。您必须在某个应用程序或启动时启动该服务

一个非常好的绑定示例是http://www.stackoverflow.com/questions/4300291/example-communication-between-activity-and-service-using-messaging

通常外部GPS实现USB CDC类,所以您应该在/dev/tty(USB | ACM ,...)中看到它,这是您可以与它通信的方式,或者检查它是否在/dev/input/eventx中有事件(需要root用于此)