413 votes

Obtenir le modèle de téléphone Android par programme, Comment obtenir le nom et le modèle de l'appareil par programme dans Android ?

J'aimerais savoir s'il existe un moyen de lire le modèle de téléphone de manière programmatique dans Android.

J'aimerais avoir une chaîne comme HTC Dream, Milestone, Sapphire ou autre...

1 votes

Je ne comprends pas pourquoi Google n'inclut pas quelque chose comme "Build.MARKET_NAME".

475voto

Idolon Points 11503

J'utilise le code suivant pour obtenir le nom complet du dispositif. Il récupère les chaînes modèle et fabricant et les concatène, sauf si la chaîne modèle contient déjà le nom du fabricant (sur certains téléphones, c'est le cas) :

public String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.toLowerCase().startsWith(manufacturer.toLowerCase())) {
        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);
    }
} 

Voici quelques exemples de noms d'appareils que j'ai obtenus des utilisateurs :

Samsung GT-S5830L
Motorola MB860
Sony Ericsson LT18i
LGE LG-P500
HTC Desire V
HTC Wildfire S A510e

0 votes

Y a-t-il une liste quelque part qui contient toutes les réponses possibles que vous pouvez obtenir du téléphone. Par exemple, si vous avez besoin de rediriger un utilisateur sur la façon d'installer quelque chose sur un type de téléphone spécifique ou de vendre quelque chose à un modèle spécifique.

9 votes

@evilfish Essayez cette liste de Google : support.google.com/googleplay/answer/1727131

0 votes

Fonctionne parfaitement sur la montre car j'en avais besoin pour Android Wear.

118voto

Mirko N. Points 6258

Oui : Build.MODEL .

1 votes

Il me donne toujours "Android SDK built for x86" quand je l'essaie avec l'émulateur. Je n'arrive pas à obtenir le nom du modèle spécifiquement dans l'émulateur avec un nom de modèle différent.

2 votes

Oui, c'est le modèle de l'émulateur. Notez qu'il utilise même un nom similaire pour le stockage interne.

35voto

Falcon165o Points 1391

En fait, ce n'est pas tout à fait exact. Cela peut vous donner un modèle (parfois des chiffres).
Vous obtiendrez le fabricant du téléphone (partie HTC de votre demande) :

 Build.MANUFACTURER

Pour un nom de produit :

 Build.PRODUCT

10 votes

J'ai découvert que String name = Build.MANUFACTURER + " - " + Build.MODEL pour être la combinaison la plus utile. Build.PRODUCT utilise parfois un nom inattendu. Par exemple, sur le Galaxy Nexus, il renvoie "takgu". Build.MODEL, quant à lui, est la valeur affichée par l'utilisateur sous Paramètres->A propos du téléphone->Numéro de modèle.

1 votes

Cela dépend en grande partie du fabricant ; les appareils HTC (Evo 4G, 4G LTE, 3D et Slide) utilisent ce que j'ai indiqué ci-dessus.

0 votes

AXON 7 mini est dans la liste. Mais où est l'AXON de taille normale ?

9voto

Edwin Evans Points 1125

Apparemment, vous devez utiliser la liste de Google à l'adresse suivante https://support.google.com/googleplay/answer/1727131

Les API ne renvoient rien de ce que j'attends ou de ce qui se trouve dans les paramètres. Pour mon Motorola X, voici ce que j'obtiens

   Build.MODEL = "XT1053"
   Build.BRAND = "motorola"
   Build.PRODUCT = "ghost"

Aller à la page mentionné ci-dessus des cartes "fantômes" sur le Moto X. Il semble que cela pourrait être un peu plus simple...

0 votes

L'AXON 7 mini est dans la liste. Mais où est l'AXON de taille normale ?

7voto

RamakanthReddy Points 61

Vous pouvez utiliser le code suivant pour obtenir le nom de marque et modèle de marque de l'appareil.

 String brand = Build.BRAND; // for getting BrandName
 String model = Build.MODEL; // for getting Model of the device

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X