

androidアプリをkotlinを利用して作成しており、センサー情報を一定間隔（１０秒間隔）で取得したいですが、やり方がわからず、以下のソースコードにあります、sensorManager.registerListener(this,
mSensor, SensorManager.SENSOR_DELAY_UI) を sensorManager.registerListener(this,
mSensor, 10000000)としてみましたが取得間隔は変わりませんでした。

間隔を変更する事は可能でしょうか？  
よろしくお願いします。

[code]

    val sensorManager: SensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
    sensors = sensorManager.getSensorList(Sensor.TYPE_ALL)
    if (sensors.size > 0) {
        for (i in 0..sensors.size-1) {
            val mSensor: Sensor = sensors.get(i);
            sensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_UI)
        }
    }
    
[/code]


CC BY-SA 4.0
2022-05-07T05:34:49.957
88684
2022-05-09T01:51:32.863
42463
question
android kotlin
kotlinでセンサーの値を一定時間で定期的に取得したい


すいません、実際に試したわけではないのですが。  
registerListenerの第4引数maxReportLatencyUsを10秒にしてみたらどうでしょうか？

  * <https://developer.android.com/reference/android/hardware/SensorManager#registerListener(android.hardware.SensorEventListener,%20android.hardware.Sensor,%20int,%20int)>
  * <http://mslabo.sakura.ne.jp/WordPress/make/processing%E3%80%80%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/%E7%85%A7%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AB%E3%81%AF%EF%BC%88androidmode%E7%B7%A8%EF%BC%89/>

上手くいかない場合はアプリ側でなんとかした方がいいかもしれませんね。  
coroutinesライブラリでdebounceが使用できるので、こちらで10秒間隔に束ねるとか。  

  * <https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/debounce.html>


CC BY-SA 4.0
2022-05-09T01:51:32.863
88718
2022-05-09T01:51:32.863
9608
88684
answer