0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Android Studio】スマホのセンサー情報を取得する【Kotlin】

Last updated at Posted at 2020-10-30

こちらの教本を参考に、アプリからスマホのセンサー情報一覧を取得してみました。
[作ればわかる!Androidプログラミング Kotlin対応 10の実践サンプルで学ぶAndroidアプリ開発入門]

#【環境】
Mac OS Catalina 10.15.7
Android Studio 4.0.1
Minimum API Level 20

#【やったこと】
SensorManagerのgetSensorList()メソッドを使って、センサー名の一覧を取得しています。

MainActivity.kt
package com.example.maki.sensorget

import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import java.lang.StringBuilder

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

        val buffer = StringBuilder() //センサーの一覧情報を入れるための変数を宣言-①

        val sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager//getSystemService()の戻り値はObject型なので、SensorManager型にキャスト
        val sList : List<Sensor> = sensorManager.getSensorList(Sensor.TYPE_ALL)//getSensorList()の引数には取得たいセンサーの種類を指定-②
                                                                                   
        for(sensor:Sensor in sList){
            buffer.append("${sensor.stringType},${sensor.name},${sensor.vendor}\n")//sensor.type→定数、sensor.stringType→センサー名 - ③
        }
        txt01.text = buffer.toString()//activity_main.xmlの中にtxt01というTextViewを追加しています。
    }
}

##①StringとStringBuilder()の違い
以前書いた以下の記事に違いをまとめています。
タイトルの通り、今回は文字列を追加していくのでStrignBuilderを使っています。
【Android Studio】文字列を追加したいときはStringよりもStringBuilderのがいいよって話【Kotlin】

##②センサータイプの名前と定数一覧
センサータイプの名前と定数は以下で確認できます。
参考:Android デベロッパー - センサーの概要

##③sensor.typeとsensor.stringType
sensor.typeは定数値のため、②の表を使って数値と種類の対応を確認する必要があります。
しかし、API20からはstringTypeでセンサーの種類が文字列で取得できるようになっていますので、そちらの方が便利です。
どこまでのAPIのバージョンをサポートするかはGradle Scripts/build.gradle(Module:app)のminSdkVersionの値で設定できます。
値を変更後は画面右上のSync nowを押して変更を反映させてください。

#【結果】
Pixel4(実機)のセンサー一覧が取得できました!
Screenshot_20201030-230329.jpg

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?