【Android Studio】스마트폰의 센서 정보를 취득한다【Kotlin】

5194 단어 AndroidStudioKotlin
여기의 교본을 참고로, 앱으로부터 스마트 폰의 센서 정보 일람을 취득해 보았습니다.
[ 만들면 알 수 있다! 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(실기)의 센서 일람을 취득할 수 있었습니다!

좋은 웹페이지 즐겨찾기