Android SensorManager Sensor,kotlin

Android SensorManager Sensor,kotlin

import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    companion object {
        private const val TAG: String = "fly"
    }

    private var sm: SensorManager? = null
    private var sensor: Sensor? = null
    private var listeners: ArrayList<MyListener> = ArrayList()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        sm = this.getSystemService(SENSOR_SERVICE) as SensorManager?
        sensor = sm?.getDefaultSensor(Sensor.TYPE_ALL)
        sm?.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL)

        for (i in 0 until 5) {
            register(object : MyListener {
                override fun onChange(event: SensorEvent) {
                    Log.d(TAG, event.sensor.name)
                }
            })
        }
    }

    private val listener: SensorEventListener = object : SensorEventListener {
        override fun onSensorChanged(event: SensorEvent) {
            change(event)
        }

        override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {

        }
    }

    override fun onDestroy() {
        super.onDestroy()
        sm?.unregisterListener(listener)

        listeners.clear()
    }

    fun change(event: SensorEvent) {
        for (l in listeners) {
            l.onChange(event)
        }
    }

    fun register(l: MyListener) {
        listeners.add(l)
    }

    interface MyListener {
        fun onChange(event: SensorEvent) {
            Log.d(TAG, event.toString())
        }
    }
}

Android获得当前设备支持的所有传感器_zhangphil的博客-CSDN博客package zhangphil.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorManager;import android.support.v7.app.AppCompatActivity;import android.os.Bunhttps://blog.csdn.net/zhangphil/article/details/78105016

Android Pressure Sensor_zhangphil的博客-CSDN博客package zhangphil.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.Senhttps://blog.csdn.net/zhangphil/article/details/78109536

Android Step Counter & Detector Sensor_android stepcounter_zhangphil的博客-CSDN博客package zhangphil.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.Senhttps://blog.csdn.net/zhangphil/article/details/78136188

Android Proximity Sensor近距离传感器P-Sensor_proximity 传感器_zhangphil的博客-CSDN博客package zhangphil.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.Senhttps://blog.csdn.net/zhangphil/article/details/78095467

Android Accelerometer Sensor_vue android,sensor.accelerometer_zhangphil的博客-CSDN博客package zhangphil.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.Senhttps://blog.csdn.net/zhangphil/article/details/78091706

Android Orientation Sensor_zhangphil的博客-CSDN博客package zhangphil.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.Senhttps://blog.csdn.net/zhangphil/article/details/78119760

Android Light Sensor_zhangphil的博客-CSDN博客package zhangphil.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.Senhttps://blog.csdn.net/zhangphil/article/details/78110512

猜你喜欢

转载自blog.csdn.net/zhangphil/article/details/129996369