Gostaria de saber se existe uma maneira de ler o modelo de telefone programaticamente no Android.
Gostaria de obter uma string como HTC Dream, Milestone, Sapphire ou qualquer outra coisa ...
fonte
Gostaria de saber se existe uma maneira de ler o modelo de telefone programaticamente no Android.
Gostaria de obter uma string como HTC Dream, Milestone, Sapphire ou qualquer outra coisa ...
Em muitos dispositivos populares, o nome de mercado do dispositivo não está disponível. Por exemplo, sobre o Samsung Galaxy S6 o valor Build.MODEL
poderia ser "SM-G920F"
, "SM-G920I"
ou "SM-G920W8"
.
Criei uma pequena biblioteca que obtém o nome do mercado (consumidor amigável) de um dispositivo. Ele recebe o nome correto para mais de 10.000 dispositivos e é constantemente atualizado. Se você deseja usar minha biblioteca, clique no link abaixo:
Se você não deseja usar a biblioteca acima, esta é a melhor solução para obter um nome de dispositivo amigável ao 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;
StringBuilder phrase = new StringBuilder();
for (char c : arr) {
if (capitalizeNext && Character.isLetter(c)) {
phrase.append(Character.toUpperCase(c));
capitalizeNext = false;
continue;
} else if (Character.isWhitespace(c)) {
capitalizeNext = true;
}
phrase.append(c);
}
return phrase.toString();
}
Exemplo do meu 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)
getDeviceName()
? Se isso não lhe der os resultados que você procura, não há uma solução melhor que eu conheça.Eu uso o código a seguir para obter o nome completo do dispositivo. Ele obtém as seqüências de modelo e fabricante e as concatena, a menos que a sequência de modelos já contenha o nome do fabricante (em alguns telefones):
Aqui estão alguns exemplos de nomes de dispositivos que recebi dos usuários:
fonte
Sim: Build.MODEL .
fonte
Na verdade, isso não é 100% correto. Isso pode lhe dar o modelo (alguns números).
Você receberá o fabricante do telefone (parte HTC da sua solicitação):
Para um nome de produto:
fonte
String name = Build.MANUFACTURER + " - " + Build.MODEL
é a combinação mais útil. Às vezes, Build.PRODUCT usa um nome inesperado. Por exemplo, no Galaxy Nexus, ele retorna "takgu". Build.MODEL, por outro lado, é o valor voltado para o usuário exibido em Configurações-> Sobre o telefone-> Número do modelo.Para quem procura uma lista completa de propriedades
Build
aqui é um exemplo para o Sony Z1 Compact:Você pode listar facilmente essas propriedades para o seu dispositivo no modo de depuração usando o diálogo "avaliar expressão" usando o kotlin:
fonte
fonte
As seguintes seqüências de caracteres são úteis quando você deseja recuperar o fabricante, o nome do dispositivo e / ou o modelo:
fonte
Aparentemente, você precisa usar a lista do Google em https://support.google.com/googleplay/answer/1727131
As APIs não retornam nada que eu espero ou algo nas configurações. Para o meu Motorola X, é isso que recebo
Indo para a página mencionada acima, mapas "fantasmas" para o Moto X. Parece que isso poderia ser um pouco mais simples ...
fonte
você pode usar o código a seguir para obter o nome e o modelo da marca do dispositivo.
fonte
Aqui está o meu código, para obter fabricante, nome da marca, versão do sistema operacional e nível de API de suporte
Resultado:
fonte
Versão Kotlin
fonte
capitalize
stackoverflow.com/a/59158474/1446466Os ídolos alterados codificam um pouco. Isso irá colocar em maiúsculas as palavras ao obter o modelo do dispositivo.
fonte
Versão curta do Kotlin:
fonte
Build.DEVICE Fornece o nome legível por humanos para alguns dispositivos
Build.MODEL
fonte
Você pode obter o nome do dispositivo do telefone na
Caso o telefone não seja compatível com Bluetooth, você deverá construir o nome do dispositivo a partir de
Aqui está o código de exemplo para obter o nome do dispositivo do telefone.
fonte
Você pode tentar seguir a função e retornar seu nome phoneModel no formato de sequência.
fonte