安卓 計步感應器

來源:互聯網
上載者:User

標籤:時報   port   tty   void   code   nexus   public   stand   def   

概念及原理計步感應器介紹

    Android KitKat has added a few more hardware sensors to it’s API list. Step Sensors are one of them, which looks very promising. Although, not a lot of phones yet have these Step Sensors, in the future, this would gradually become a standard I think. Currently, Nexus 5 has them.

Step Counter: This keeps a count of the number of steps that you have taken. The counter is only reset when you re-boot the device, else, for every step you take (or the phone thinks you took, you counts up).

Step Detector: This sensor just detects when you take a step. That’s [email protected]link

Step counter sensor

    TYPE_STEP_COUNTER:計步器(記錄曆史步數累加值)

    這種類型的感應器返回使用者自上次重新啟用以來所採取的步驟數。 該值作為浮點數返回(小數部分設定為零),僅在系統重新引導時才將其重設為零。 事件的時間戳記設定為採取該事件的最後一步的時間。 該感應器以硬體實現,預計功耗低。 如果要持續跟蹤長時間的步數,請勿取消註冊該感應器,以便即使AP處於掛起模式,也會在後台繼續計數步驟,並且當AP處於掛起狀態時報告彙總計數 蘇醒。 應用程式需要保留該感應器的註冊,因為如果沒有啟用步進計數器不計數步驟。 該感應器適用於健身跟蹤應用。 它被定義為REPORTING_MODE_ON_CHANGE感應器。

Step detector sensor

    TYPE_STEP_DETECTOR:檢測器(檢測每次步伐資料)

    這種類型的感應器每次使用者觸發一個事件。 唯一允許的傳回值為1.0,並為每個步驟產生一個事件。 與任何其他事件一樣,時間戳記表示事件(這裡是步驟)何時發生,這對應於當腳撞到地面時,產生加速度的高變化。 該感應器僅用於檢測每個單獨的步驟,例如執行航位推算。 如果您只需要在一段時間內累積的步數,請註冊TYPE_STEP_COUNTER。 它被定義為REPORTING_MODE_SPECIAL_TRIGGER感應器。@link

 

 

API部分
使用:@link1、使用感應器之前首先擷取SensorManager通過系統服務擷取:SensorManager  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);2、擷取我們需要的感應器類型://單次有效計步Sensor  mStepCount = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);//系統計步累加值Sensor  mStepDetector = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);3、註冊監聽者(監聽感應器事件)mSensorManager.registerListener(this, mStepDetector, SensorManager.SENSOR_DELAY_FASTEST);mSensorManager.registerListener(this, mStepCount, SensorManager.SENSOR_DELAY_FASTEST);PS:取消註冊:mSensorManager.unregisterListener(this, mStepDetector);mSensorManager.unregisterListener(this, mStepCount);4、實現SensorEventListener介面,重寫方法並擷取資料:從監聽到的感應器事件中選取合適的類型,獲得資料:@Overridepublic void onSensorChanged(SensorEvent event) {    if (event.sensor.getType() == sensorTypeC) {            //event.values[0]為計步曆史累加值        tvAllCount.setText(event.values[0] + "步");    }    if (event.sensor.getType() == sensorTypeD) {        if (event.values[0] == 1.0) {            mDetector++;            //event.values[0]一次有效計步資料            tvTempCount.setText(mDetector + "步");        }    }}

參考:

    Android計步模組最佳化 項目應用

    android-4-4-step-detector-and-counter

     Android 計步功能-簡單實現

     android計步功能初探 基於加速度感應器

安卓 計步感應器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.