AndroidのJava.net.NetworkInterface実装には、
byte [] getHardwareAddress()メソッド http://developer.Android.com/reference/Java/net/NetworkInterface.html
私は決定的な答えなしでこれをしようとしている人々のいくつかのフォーラムを見つけました、私はややクロスデバイスのUUIDを取得する必要があるので、電話番号やAndroid_IDに依存することはできませんGoogleアカウントを持っているユーザー) http://developer.Android.com/reference/Android/provider/Settings.Secure.html#Android_ID
Linuxでは、ifconfigを使用するか、/ proc/net/arpから読み取ることができ、ハードウェアアドレスを簡単に取得できます。
Androidに読み取り可能なファイルがありますか?
電話の[設定]> [電話について]> [ステータス]に表示されるため、このアドレスを取得する方法が必要です。
電話の[設定]> [電話について]> [ステータス]に表示されるため、このアドレスを取得する方法が必要です。
つまり、おそらくGoogle Code Searchを使用して、Androidオープンソースコードをパターして、どこからそれを引き出しているのかを把握することができます。
自分で少しパターすることで、WifiInfo
のgetMacAddress()
を使用しているように見えます。
遅い答えですが、同じ「問題」を持つ他の人を助けることができます。
answer は本当に簡単です:
WifiManager wifiMan = (WifiManager) this.getSystemService(
Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
String macAddr = wifiInf.getMacAddress();
上記のコードは、デバイスのMACアドレスを取得します。アドレスを取得するときは、wifiを有効にしてください。このコードスニペットはアクティビティで使用する必要があります。
更新:
開始 Android 6.0、上記のAPIは、すべてのデバイスの定数MACアドレスを提供します。 02:00:00:00:00:00。詳細については以下を参照してください
http://developer.Android.com/about/versions/Marshmallow/Android-6.0-changes.html
6.0でMACアドレスを見つけたと主張する別の投稿を見つけましたが、テストしていません
Android Marshmallow でWi-Fi Macアドレスを取得する方法
次の許可を追加します。
<uses-permission Android:name="Android.permission.ACCESS_WIFI_STATE" />
WifiManagerはonCreateで初期化します。
WifiManager wifiMgr = (WifiManager) getContext().getSystemService(context.WIFI_SERVICE);
以下の機能を使用してください。
public void WI-FI_MAC() {
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();
}
On Android Q、もうMACアドレスにアクセスする方法はありません。
WifiInfo.getMacAddress()
は常に_02:00:00:00:00:00
_を返します。
また、WifiConfiguration.getRandomizedMacAddress()
は使用できなくなります。