July 26, 2023

How to get Device name and model programmatically in android

By admin


Finding a way to get the android device name and model programatically. No worries We can find the device (hardware and software) information using Build Package in Android. Build package provides information about the current build, extracted from system properties.

Following is a small code snippet that gets the market (consumer friendly) name of a device.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/** Returns the consumer friendly device name */
fun getDeviceName(): String {
val manufacturer = Build.MANUFACTURER
val model = Build.MODEL
return if (model.startsWith(manufacturer)) {
capitalize(model)
} else capitalize(manufacturer) + " " + model
}
private fun capitalize(str: String): String {
if (TextUtils.isEmpty(str)) {
return str
}
val arr = str.toCharArray()
var capitalizeNext = true
val phrase = StringBuilder()
for (c in arr) {
if (capitalizeNext && Character.isLetter(c)) {
phrase.append(c.uppercaseChar())
capitalizeNext = false
continue
} else if (Character.isWhitespace(c)) {
capitalizeNext = true
}
phrase.append(c)
}
return phrase.toString()
}
/** Returns the consumer friendly device name */ fun getDeviceName(): String { val manufacturer = Build.MANUFACTURER val model = Build.MODEL return if (model.startsWith(manufacturer)) { capitalize(model) } else capitalize(manufacturer) + " " + model } private fun capitalize(str: String): String { if (TextUtils.isEmpty(str)) { return str } val arr = str.toCharArray() var capitalizeNext = true val phrase = StringBuilder() for (c in arr) { if (capitalizeNext && Character.isLetter(c)) { phrase.append(c.uppercaseChar()) capitalizeNext = false continue } else if (Character.isWhitespace(c)) { capitalizeNext = true } phrase.append(c) } return phrase.toString() }
  /** Returns the consumer friendly device name  */
    fun getDeviceName(): String {
        val manufacturer = Build.MANUFACTURER
        val model = Build.MODEL
        return if (model.startsWith(manufacturer)) {
            capitalize(model)
        } else capitalize(manufacturer) + " " + model
    }

    private fun capitalize(str: String): String {
        if (TextUtils.isEmpty(str)) {
            return str
        }
        val arr = str.toCharArray()
        var capitalizeNext = true
        val phrase = StringBuilder()
        for (c in arr) {
            if (capitalizeNext && Character.isLetter(c)) {
                phrase.append(c.uppercaseChar())
                capitalizeNext = false
                continue
            } else if (Character.isWhitespace(c)) {
                capitalizeNext = true
            }
            phrase.append(c)
        }
        return phrase.toString()
    }

Here are a few examples of device names that we got from diffrent devices by running the above code:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Samsung GT-S5830L
Motorola MB860
Sony Ericsson LT18i
LGE LG-P500
HTC Desire V
HTC Wildfire S A510e
Samsung GT-S5830L Motorola MB860 Sony Ericsson LT18i LGE LG-P500 HTC Desire V HTC Wildfire S A510e
Samsung GT-S5830L
Motorola MB860
Sony Ericsson LT18i
LGE LG-P500
HTC Desire V
HTC Wildfire S A510e





Please feel free to comment as well as ask questions. And, yeah! If this post helps you please do share!

Enjoy Coding and Share Knowledge