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 |