2
1

More than 1 year has passed since last update.

【Android】加速度センサー【Kotlin】

Posted at

加速度センサーとは

スマホには様々なセンサーがありますが、その中でも
スマホが縦向きか横向きかを判断し 画面を回転させるため
万歩計などに使われているセンサーです

実装

kotlinでアプリ内に加速度センサーを使って端末の向きを取得しようと思います

 class MainActivity : AppCompatActivity(), SensorEventListener {

    private var sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
    private val textView: TextView = findViewById(R.id.text_view)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onSensorChanged(event: SensorEvent) {
        val x = event.values[0].toInt()
        val y = event.values[1].toInt()
        val z = event.values[2].toInt()

        textView.text = " X= $x Y= $y Z= $z"
    }

    override fun onAccuracyChanged(p0: Sensor?, p1: Int) {
        TODO("Not yet implemented")
    }

SensorManagerという機能を使って取得できます。
使いやすくするためにあらかじめインスタンス化しておきます。

SensorEventListenerを継承しているのでセンサーが切り替わったタイミングでonSensorChangedメソッドで値が取得できます。
xが横軸 yが縦軸 zが方位角度でそれぞれ取得されます。

また、onAccuracyChangedメソッドはセンサーの精度が変化した時に呼ばれます。

参考

おわりに

センサー系の実装は体感的で触っていて面白いので今後も記事にできたらいいなと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1