java - studio - Obtener el nombre del dispositivo Android
como saber el nombre de mi dispositivo en la red (9)
En muchos dispositivos populares, el nombre comercial del dispositivo no está disponible. Por ejemplo, en el Samsung Galaxy S6, el valor de Build.MODEL
podría ser "SM-G920F"
, "SM-G920I"
o "SM-G920W8"
.
Creé una pequeña biblioteca que obtiene el nombre de mercado de un dispositivo (amigable para el consumidor). Recibe el nombre correcto para más de 10,000 dispositivos y se actualiza constantemente. Si desea usar mi biblioteca, haga clic en el siguiente enlace:
AndroidDeviceNames Library en Github
Si no desea utilizar la biblioteca de arriba, esta es la mejor solución para obtener un nombre de dispositivo amigable para el consumidor:
/** Returns the consumer friendly device name */
public static String getDeviceName() {
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
if (model.startsWith(manufacturer)) {
return capitalize(model);
}
return capitalize(manufacturer) + " " + model;
}
private static String capitalize(String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
char[] arr = str.toCharArray();
boolean capitalizeNext = true;
String phrase = "";
for (char c : arr) {
if (capitalizeNext && Character.isLetter(c)) {
phrase += Character.toUpperCase(c);
capitalizeNext = false;
continue;
} else if (Character.isWhitespace(c)) {
capitalizeNext = true;
}
phrase += c;
}
return phrase;
}
Ejemplo de mi Verizon HTC One M8:
// using method from above
System.out.println(getDeviceName());
// Using https://github.com/jaredrummler/AndroidDeviceNames
System.out.println(DeviceName.getDeviceName());
Resultado:
HTC6525LVW
HTC One (M8)
¿Cómo obtener el nombre del dispositivo Android? Estoy usando HTC desire. Cuando lo conecté a través de HTC Sync, el software muestra el nombre ''HTC Smith'' . Me gustaría buscar este nombre a través del código.
¿Cómo es esto posible en Android?
Gracias
Intentalo. Puede obtener el Nombre del dispositivo a través de Bluetooth.
Espero que te ayude
public String getPhoneName() {
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();
return deviceName;
}
La respuesta de @hbhakhra servirá.
Si le interesa una explicación detallada, es útil consultar el documento de definición de compatibilidad de Android . (3.2.2 Parámetros de compilación)
Usted encontrará:
DISPOSITIVO: un valor elegido por el implementador del dispositivo que contiene el nombre de desarrollo o el nombre del código que identifica la configuración de las características del hardware y el diseño industrial del dispositivo. El valor de este campo DEBE ser codificable como ASCII de 7 bits y coincidir con la expresión regular "^ [a-zA-Z0-9 _-] + $".
MODELO - Un valor elegido por el implementador del dispositivo que contiene el nombre del dispositivo conocido por el usuario final. Esto DEBE ser el mismo nombre bajo el cual el dispositivo se comercializa y se vende a los usuarios finales. No hay requisitos en el formato específico de este campo, excepto que NO DEBE ser nulo o la cadena vacía ("").
FABRICANTE: nombre comercial del fabricante del equipo original (OEM) del producto. No hay requisitos en el formato específico de este campo, excepto que NO DEBE ser nulo o la cadena vacía ("").
Lo solucioné obteniendo el nombre de Bluetooth, pero no del BluetoothAdapter
(que necesita permiso de Bluetooth).
Aquí está el código:
Settings.Secure.getString(getContentResolver(), "bluetooth_name");
No se requieren permisos adicionales.
Para obtener el nombre del dispositivo Android, debe agregar solo una línea de código:
android.os.Build.MODEL;
Se encuentra aquí: getting-android-device-name
Pasar por Bluetooth es la mejor manera
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();
No olvides agregar el permiso de Bluetooth al archivo de manifiesto
Puede ver las respuestas aquí Obtenga el modelo de teléfono Android mediante programación
public String getDeviceName() {
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
if (model.startsWith(manufacturer)) {
return capitalize(model);
} else {
return capitalize(manufacturer) + " " + model;
}
}
private String capitalize(String s) {
if (s == null || s.length() == 0) {
return "";
}
char first = s.charAt(0);
if (Character.isUpperCase(first)) {
return s;
} else {
return Character.toUpperCase(first) + s.substring(1);
}
}
Puedes usar:
Desde el documento de Android:
String MANUFACTURER
El fabricante del producto / hardware.
String MODEL
El nombre visible para el usuario final para el producto final.
String DEVICE
El nombre del diseño industrial.
Como un ejemplo:
String deviceName = android.os.Build.MANUFACTURER + " " + android.os.Build.MODEL;
//to add to textview
TextView textView = (TextView) findViewById(R.id.text_view);
textView.setText(deviceName);
Además, hay muchos atributos en la clase Build que puedes usar, como:
-
os.android.Build.BOARD
-
os.android.Build.BRAND
-
os.android.Build.BOOTLOADER
-
os.android.Build.DISPLAY
-
os.android.Build.CPU_ABI
-
os.android.Build.PRODUCT
-
os.android.Build.HARDWARE
-
os.android.Build.ID
También hay otras formas en que puede obtener el nombre del dispositivo sin usar la clase Build
(a través del bluetooth).
Simplemente usa
BluetoothAdapter.getDefaultAdapter().getName()