2011-08-12 54 views
1

我有一個應用程序是一種服務,我想要做的是讓用戶在運動時啓動服務,然後以10英里/小時(或任何我想要的值) 。如何確定用戶是否在運動

我不想做的是繼續投票的GPS,因爲如果我這樣做,電池將耗盡快。

我可以用它來做些什麼?真正的選擇,不會耗盡電池將是偉大的!感謝您的幫助。

回答

2

要使位置更新始終處於最佳狀態(GPS)的最小化的一種方法是,您可以根據從加速度計獲得的反饋開啓/關閉位置更新。例如,當您用加速度計打破設定的移動閾值時,您可以開始偵聽位置更新並檢查設備是否移動得足夠快。如果沒有,您可以關閉位置更新。

這裏有一些優化,如「如果加速度計閾值小於30秒前被忽略,忽略」,以便您最終不會在打開位置更新時發生顛簸。

以下是Accelerometer Usage的開發者示例。

+0

我喜歡這個想法。爲了查看是否有其他想法,我會繼續討論這個問題,但到目前爲止,你是最終的贏家。 – Icemanind

0

你可以這樣做的一種方法是Inertial Navigation,但這是值得懷疑的是,內置傳感器足夠精確以測量任何重要的東西。

另一種方法是參考您的設備和無線接入點之間的距離,我正在和一個說這種方法精確到微米的人說話。但是,它提出了自己的問題。變得複雜很快,特別是如果你不是直線移動,再加上你必須有一些WAP。

我認爲GPS是最可行的選擇。沒有GPS

1

一個想法想一步計數器來創造一些:

  • 用戶有手機在褲兜。
  • 每次撥打電話detects a shake時,用戶只需一步。

然後,您需要知道他的「步長」,並計算他在一分鐘內完成的步數。然後,你乘的步數與一個步長,你有meters/minute

1 meter/minute = 0.0372822715 mph 

這還用米/秒的工作:

1 meter/second = 2.23693629 mph 

當然,這隻能如果用戶實際上正在跑/騎/騎他的自行車,這不是很準確。如果你想檢查他乘汽車或乘船旅行的速度,這是行不通的。

+0

這是一個好主意,除了我的應用程序需要知道他的汽車行駛速度。 – Icemanind

相關問題