코틀린으로 작성한 안드로이드에서 UUID 가져오기

오늘은 범용 고유 식별자라고 불리는 UUID를 안드로이드에서 코틀린으로 구해보려 합니다.

설정

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

안드로이드 오레오 6.0 이하 버전에서는 위와 같이 간단하게 처리할 수 있습니다.

private fun makeRequest() {
        if (ContextCompat.checkSelfPermission(this@MainActivity, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this@MainActivity,
                    arrayOf(Manifest.permission.READ_PHONE_STATE),
                    Constants.RECORD_REQUEST_CODE)
        }

}

override fun onRequestPermissionsResult(requestCode: Int,
                                            permissions: Array<String>, grantResults: IntArray) {
    when (requestCode) {
        Constants.RECORD_REQUEST_CODE -> {
            if (grantResults[0] != PackageManager.PERMISSION_GRANTED || grantResults[1] != PackageManager.PERMISSION_GRANTED || grantResults[2] !=PackageManager.PERMISSION_GRANTED) {
                // 권한을 못 받을 경우
            } else {
                //권한을 받을 경우
            }
        }
    }
}

checkSelfPermission 메소드로 권한을 얻었는지 확인한 뒤에 못 얻었다면 requestPermissions 메소드로 권한을 받아옵니다.

onRequestPermissionsResult 메소드를 오버라이드하여 권한을 받거나 못 받을 때에 수행할 명령을 적어줍니다.

uuid 가져오기

private fun getUuid() : String {
    val uuid =  android.provider.Settings.Secure.getString(Context().contentResolver,Settings.Secure.ANDROID_ID)
    return uuid
}

위와 같이 작성하면 해당 안드로이드 기기의 uuid가 반환됩니다.

Written on July 30, 2018