2017-01-28 115 views
0

我有一個要求,我必須從我的Android手機的USB連接到GPS設備的數據,數據應遞歸可用,只要我的任何應用程序要求它。GPS服務在後臺運行

像這樣的東西應該作爲位置偵聽器。

我可以在android中使用什麼,以便這個從這個USB獲取數據的任何時間的要求是可能的。

回答

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,然後綁定(bindService())或解除綁定(unbindService())的服務,當您需要GPS位置

一個例如使用機器人系統使用內部GPS在背景[!]服務LocationListenerhttp://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爲此)

+0

謝謝我會嘗試這個並回到you.I使用D2xx的API [鏈接](https://github.com/ksksue/ Android-FTDI-UART-Sample).Reference [link](http://www.ftdichip.com/Android.htm)從USB獲取數據,有沒有任何android項目的例子從USB讀取數據。 – RShenoy

+0

取決於外部GPS實現的USB類。如果它實現CDC,則可以使用串口命令或捕獲事件或.... android低級別usb位於'android.hardware.usb.UsbDeviceConnection'中。示例在https://developer.android.com/reference/android/hardware/usb/UsbDeviceConnection.html和http://www.programcreek.com/java-api-examples/index.php?api=android.hardware .usb.UsbDeviceConnection –

+0

這個例子是「如何在一個活動和一個服務之間發送消息」我想單獨運行我自己的服務,說'A'(它接收來自USB的數據),並從這個服務'A'到另一個或不同的應用程序。請幫助我這一點。 – RShenoy