Il semble que l’implémentation Java.net.NetworkInterface d’Android n’a pas de
byte [] getHardwareAddress () method http://developer.Android.com/reference/Java/net/NetworkInterface.html
J'ai trouvé plusieurs forums de personnes essayant de le faire sans réponse définitive. J'ai besoin d'un UUID quelque peu inter-périphérique, je ne peux donc pas me fier aux numéros de téléphone ni à Android_ID (qui peut être écrasé et qui dépend compte utilisateur google) http://developer.Android.com/reference/Android/provider/Settings.Secure.html#Android_ID
Sous Linux, vous pouvez utiliser ifconfig ou lire à partir de/proc/net/arp et vous pouvez facilement obtenir l'adresse matérielle.
Existe-t-il un fichier dans Android que je peux lire?
Il doit y avoir un moyen d’obtenir cette adresse car elle apparaît dans les "Paramètres> À propos du téléphone> État" du téléphone.
Il doit y avoir un moyen d’obtenir cela adresse car il est indiqué dans le "Paramètres> À propos du téléphone> État" de le téléphone.
Ce qui signifie que, si rien d'autre, vous pouvez utiliser le code source ouvert Android, peut-être en utilisant Google Code Search, pour déterminer d'où il tire.
En faisant un peu de putter moi-même, il semblerait qu'il utilise getMacAddress()
de WifiInfo
.
Réponse tardive, mais cela peut aider les autres avec le même "problème".
Le répondre est vraiment simple:
WifiManager wifiMan = (WifiManager) this.getSystemService(
Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
String macAddr = wifiInf.getMacAddress();
Le code ci-dessus vous donnera l'adresse MAC de votre appareil. N'oubliez pas d'activer le wifi lors de la saisie de l'adresse. Cet extrait de code doit être utilisé dans votre activité.
METTRE À JOUR:
Début Android 6.0, API ci-dessus vous donnera une adresse MAC constante pour tous les périphériques, ce qui est 02h00, 00h00, 00h00. Voir ci-dessous pour plus de détails
http://developer.Android.com/about/versions/Marshmallow/Android-6.0-changes.html
Trouvé un autre poste qui prétend trouver l'adresse MAC dans 6.0, pas testé si
Comment obtenir l'adresse Mac Wi-Fi dans Android Marshmallow
Ajouter la permission suivante.
<uses-permission Android:name="Android.permission.ACCESS_WIFI_STATE" />
WifiManager s'initialise dans onCreate.
WifiManager wifiMgr = (WifiManager) getContext().getSystemService(context.WIFI_SERVICE);
Utilisez la fonction suivante.
public void WI-FI_MAC() {
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();
}