2013-05-30 18 views
1

我們現在可以使用ActivityRecognitionClient類。 dev的文檔展示瞭如何從活動中使用它:來自服務的ActivityRecognitionClient

http://developer.android.com/training/location/activity-recognition.html

有沒有辦法有遇到特定的活動類型時,OS通知我們的應用程序?例如,每當活動類型狀態從停止狀態變爲騎自行車時,我都希望我的應用程序由操作系統調用。

這個例子看起來好像我們需要將ActivityRecognitionClient與應用程序生命週期所綁定的Activity(或片段)一起使用。

雖然我們可以在OS上註冊標準,但類似於地理柵欄請求。我猜想,作爲一種解決方法,我們可以每N秒運行一次服務,創建一個ActivityRecognitionClient實例,監聽它幾秒鐘,然後將所有內容關閉。

謝謝

+0

任何解決方案爲你工作? –

回答

0

我一直在使用當前項目的新客戶端類。到目前爲止,我所得到的最好的結果是創建一個前臺服務(因爲我的用戶需要知道該服務正在運行),它建立了與識別客戶端的連接,並創建了一個IntentService的待處理意圖,在更新期間檢測到的活動。

根據您的要求,您可以發送廣播(本地或其他方式),因爲DetectedActivity屬於parcleable或執行我所做的事情,即將DetectedActivity傳回我的前臺服務以處理onStartCommand。