본문 바로가기
안드로이드/센서

안드로이드 단말기 정보 파악

by 김어찐 2022. 6. 24.
728x90

안드로이드 애플리케이션에서 단말기의 정보가 필요할 경우 정보를 가져다 사용할 수 있다.
안드로이드 8.0 부터 단말기 일련번호, 유심 일련번호 등 단말기의 고유한 정보는 사용할 수 없다.

 

TelephonyManager

전화 기능과 관련된 정보를 가져올 수 있다.
전화번호 : line1Number
SIM 국가 코드 : simCountryIso)
모바일 국가코드 + 모바일 네트워크 코드 : simOperator)
서비스 이름 : simOperatorName)
SIM 상태(통신 가능 여부, PIN LOCK 여부) : simState)
음성 메일 번호 : voiceMailNumber)

 

Build

안드로이드 OS 및 시스템과 관련된 정보를 가져올 수 있다.
보드 이름 : Build.BOARD
소프트웨어를 커스터마이징한 제조사 : Build.BRAND
제조사 디자인명 : Build.DEVICE
사용자에게 표시되는 빌드 ID : Build.DISPLAY
빌드 고유 ID : Build.FINGERPRINT
ChangeList 번호 : Build.ID

제품/하드웨어 제조업체 : Build.MANUFACTURER
제품 모델명 : Build.MODEL
제품명 :  Build.PRODUCT
빌드 구분 : Build.TAGS
빌드 타입 : Build.TYPE
안드로이드 버전 : Build.VERSION.RELEASE

 


단말기 해상도 정보   

안드로이드 11 버전 부터 코드가 달라졌다.

 

package com.example.deviceinfo

import android.Manifest
import android.content.pm.PackageManager
import android.graphics.Point
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.telephony.TelephonyManager
import android.view.WindowManager
import androidx.core.app.ActivityCompat
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    val permission_list = arrayOf(
        Manifest.permission.READ_PHONE_STATE,
        Manifest.permission.READ_SMS,
        Manifest.permission.READ_PHONE_NUMBERS
    )
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        requestPermissions(permission_list,0)

        button.setOnClickListener {
            // TelephonyManater를 추출한다.
            val manager = getSystemService(TELEPHONY_SERVICE) as TelephonyManager

            if (ActivityCompat.checkSelfPermission(
                    this,
                    Manifest.permission.READ_SMS
                ) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
                    this,
                    Manifest.permission.READ_PHONE_NUMBERS
                ) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
                    this,
                    Manifest.permission.READ_PHONE_STATE
                ) != PackageManager.PERMISSION_GRANTED
            ){
                textView.text = "권한을 허용해 주세요"
            }
            else{
                textView.text = "전화번호 :${manager.line1Number}\n"
                textView.append("SIM 국가 코드 : ${manager.simCountryIso}\n")
                textView.append("모바일 국가 코드 + 모바일 네트워크 코드 : ${manager.simOperator}\n")
                textView.append("서비스 이름 : ${manager.simOperatorName}")
                textView.append("SIM 상태(통신 가능여부, PIN LOCK 여부) : ${manager.simState}")
                textView.append("음성 메일 번호 : ${manager.voiceMailNumber}")
            }

        }
        button2.setOnClickListener {
            textView.text = "보드 이름 :${Build.BOARD}\n"
            textView.append("소프트웨어 커스터마이징한 회사 : ${Build.BRAND}\n")
            textView.append("제조사 디자인 명 : ${Build.DEVICE}\n")
            textView.append("사용자에게 표시되는 빌드 : ${Build.DISPLAY}\n")
            textView.append("빌드 고유 ID : ${Build.FINGERPRINT}\n")
            textView.append("빌드 고유 ID : ${Build.FINGERPRINT}\n")


        }
        button3.setOnClickListener {
            val wm = getSystemService(WINDOW_SERVICE) as WindowManager

            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
                val matrix = wm.currentWindowMetrics

                val width = matrix.bounds.width()
                val height = matrix.bounds.height()

                textView.text = "width : $width\n"
                textView.append("height : $height\n")
            }
            else{
                val display = wm.defaultDisplay

                val point = Point()
                display.getSize(point)

                textView.text = "width : ${point.x}\n"
                textView.append("height : ${point.y}")
            }
        }
    }
}
728x90

'안드로이드 > 센서' 카테고리의 다른 글

안드로이드 앨범에서 사진 가져오기  (0) 2022.06.25
안드로이드 사진 보정  (0) 2022.06.25
안드로이드 사진 기능  (0) 2022.06.25
안드로이드 GPS  (0) 2022.06.25
안드로이드 센서  (0) 2022.06.24