新人社内SEのメモ書き

琵琶湖生まれ琵琶湖育ち。京都の産業用機器メーカの社内SE。自身の体験した事や勉強したことなど記事にしてます。自作PCとドライブが大好き。

[Android6.0]MACアドレスが取得できない

動作環境

Android6.0

現象

今更、Android6.0かよ。と思うかもしれませんが、これは大学の卒業研究でAndroid6.0でアプリを作っていて知ったのでメモ書き程度に書きます。 まず、卒業研究自体がWi-FiのビーコンをAndroid端末でスキャンして、BSSIDと電波強度の複数セットをウェブサーバに送信して、誰がどのあたりにいるかどうかを見るシステムを作ってるわけです。一応、Android端末からウェブサーバにアクセスする際に、誰もがアクセスして言い訳でないのでIDとパスワードで最初は認証をしてました。そこで、まだ不安だったので、Android端末のMACアドレスも認証材料にしようかと、以下のコードで取得しようとしましたが、実際に取得できたのは(02:00:00:00:00:00)でした。

Wi-Fi用のMACアドレスを取得するコード

WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
String address = wifiManager.getConnectionInfo().getMacAddress();

結論

ぐぐっていると、セキュリティ上の観点から取得不可にしたそうです。 そうなると今回の目的が達成できないので、急遽変更でMACアドレスからウェブサーバで一時パスワードを発行して、それをAndroid端末から送る形に変えました。 無事、その方法で解決しました。 あっちなみに、よりによってAndroid6.0をなぜ使っているかと言うと、大学の研究費が少ないせいもあり、新しいAndroid端末を買ってもらえないって感じです(笑 まーAndroid最新バージョンであろうとも、特に支障はないんですがね