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())
}
}
}
扫描二维码关注公众号,回复:
14714410 查看本文章