안녕하세요.
핸드폰 기기정보가 필요한 경우는 실제 서비스를 고려할 때 종종 있습니다.
안드로이드 Q 버전부터는 더 이상 '사용자가 재설정할 수 없는' 디바이스 식별자를 제공하지 않습니다. 타깃 SDK 버전과 관계없이 DeviceID, IMEI, MEID, Build.Serial 등의 값을 사용할 수 없습니다. 만일 이러한 디바이스 식별자를 사용하고 있다면, 다른 방법으로 전환해야 합니다. 디바이스 식별자를 사용하고 있는 방식에 따라 마이그레이션 작업에 많은 시간이 소요될 수 있기 때문에 주의가 필요합니다.
안드로이드 플랫폼에는 고유 식별자로 사용할 수 있는 값이 여럿 있습니다. 자세한 사항은 아래 문서를 참고하시면 좋을 거 같습니다.
https://developer.android.com/training/articles/user-data-ids?hl=ko
고유 식별자의 범위는 대략적으로 다음과 같이 분류됩니다.
단일 앱 - 한 앱에서 확인한 식별자는 해당 앱에서만 동일하게 유지됩니다. 앱 A에서 확인한 식별자는 앱 B에서 확인한 식별자와 다릅니다.
앱 그룹 - 한 앱에서 확인한 식별자는 미리 정의된 몇몇 앱 사이에서 동일하게 유지됩니다. 예를 들어 앱 서명키 기준으로 앱 그룹을 지정할 수 있습니다. 앱 A에서 확인한 식별자는 동일 키로 서명된 앱 B에서 확인한 식별자와 동일합니다. 서명 키가 다른 앱 C에서는 값이 달라집니다.
디바이스 - 한 앱에서 확인한 식별자는 동일 디바이스에 있는 모든 앱에서 동일하게 유지됩니다. 동일 디바이스에 설치된 앱 A, B, C 모두 동일한 식별자 값을 갖습니다.
서론이 길었지만 앞서 설명했던 정보를 클래스로 만들어서 사용하면 편리해 공유해보도록 하겠습니다.
저는 디바이스의 고유 id, 모델, OS, App Version을 클래스를 통해 가져와 보도록 하겠습니다.
제가 만들어 놓은 코드는 아래 스틱코드에 업로드 했으니 필요하신 분들은 저장하여 사용하시면 될 거 같습니다.
https://stickode.com/code.html?fileno=10693
위 클래스를 아래 처럼 불러와 사용하였습니다.
class DeviceInfo : AppCompatActivity() {
lateinit var txtID: TextView
lateinit var txtModel: TextView
lateinit var txtOs: TextView
lateinit var txtVersion: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_device_info)
val deviceInformation = DeviceInformation(this)
Log.d("Tag","deviceInformation 확인 :"+deviceInformation.getDeviceId())
txtID = findViewById(R.id.device_id)
txtModel = findViewById(R.id.device_model)
txtOs = findViewById(R.id.device_os)
txtVersion = findViewById(R.id.app_version)
txtID.setText(deviceInformation.getDeviceId())
txtModel.setText(deviceInformation.getDeviceModel())
txtOs.setText(deviceInformation.getDeviceOs())
txtVersion.setText(deviceInformation.getAppVersion())
}
}
이처럼 사용하시면 아래 사진처럼 결과를 얻을 수 있습니다
'안드로이드 코틀린' 카테고리의 다른 글
[Kotlin][Android] ActivityResultContract를 활용한 권한 획득 방법 (0) | 2021.08.06 |
---|---|
[Kotlin][Android] 권한 요청 기능 만들기 (4) | 2021.08.03 |
[Kotlin][Android] Room 으로 DB 저장하기 (0) | 2021.08.01 |
[Kotlin][Android] 툴바(toolbar) 및 메뉴버튼 만들기 (0) | 2021.07.25 |
[Kotlin][Android] 네트워크 연결 상태 확인 (0) | 2021.07.23 |