我想找到最可靠的方式來識別用戶是否正在開車,步行,騎車或靜止。我將在Android應用程序中使用它。我寧願儘可能避免使用GPS。識別用戶正在開車,步行,騎自行車
請讓我知道什麼算法適合你,他們的優點和缺點。謝謝!
我想找到最可靠的方式來識別用戶是否正在開車,步行,騎車或靜止。我將在Android應用程序中使用它。我寧願儘可能避免使用GPS。識別用戶正在開車,步行,騎自行車
請讓我知道什麼算法適合你,他們的優點和缺點。謝謝!
Google在Google Play服務中爲此提供了一個API。檢查出https://developer.android.com/reference/com/google/android/gms/location/ActivityRecognitionApi.html
我不會建議你自己編碼,它不容易(我有一個版本大約一年前谷歌做的,它是越野車和電池耗盡)。
感謝您的回覆!我嘗試過,但準確度並不高。置信度度量通常太低而不能依賴。 –
信心不足,因爲這不是一個簡單的問題。如果他們每小時行駛10英里是騎自行車,還是在停車場慢慢行駛?如果他們停下來30秒,他們是開着還是闖紅燈?大概60秒? 120?它的所有猜測工作真的。如果你問的是這裏而不是實現你自己的一個絕妙的想法,你真的認爲你會比他們的團隊做得更好,並花費了很多時間嗎? –
你可能永遠不會得到完全準確的結果,但可以使用
- GPS to identify speed
- Is the charger plugged in
- is the phone off, or on screensaver
- is the movement detector going off a lot - likely walking but may be driving on dirt road
我用一個簡單的版本打如下方式確定一個合理的估計(不好意思代碼是在Python)
def inspect_phone(self):
self.phone_gps_lat = 137.0000 # get from phone
self.phone_gps_lng = 100.0000 # get from phone
self.phone_moving = False # get from phone
self.phone_move_dist_2_mn = 4
self.phone_on_charge = True
self.screen_saver = False
#-------------------------------
phone_status = ''
if self.phone_on_charge == True:
phone_status += 'Phone is charging'
if self.phone_moving == True:
phone_status += ', driving in Car'
else:
phone_status += ', sitting still'
else:
if self.screen_saver == False:
phone_status += 'Phone is being used'
else:
phone_status += 'Phone is off'
if self.phone_moving == True:
if self.phone_move_dist_2_mn < 5:
phone_status += ', going for Walk'
elif self.phone_move_dist_2_mn > 500:
phone_status += ', flying on Plane'
else:
phone_status += ', riding on ' + transport['Public']
return phone_status
我首先想到的將是速度閾值和設備爲每種運輸方法檢測到的一些「震動」數量。但您可能不得不使用GPS來識別用戶的速度。 –