7

次のコードを使用して、Android デバイスの MAC アドレスを見つけています。

WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String address = info.getMacAddress());

ただし、この場合、Wifi がオフになっていると MAC アドレスを取得できません。WIFIがオフの場合でも、AndroidデバイスのMACアドレスを取得するにはどうすればよいですか?

ありがとう

4

1 に答える 1

14

MACアドレスを取得するまでWifiを一時的に有効にし、MACアドレスの取得が完了したら無効にしないのはなぜですか?

もちろん、これを行うのは、MAC アドレスの取得が絶対に重要な場合です。

テストされていないコード

WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

if(wifiManager.isWifiEnabled()) {
    // WIFI ALREADY ENABLED. GRAB THE MAC ADDRESS HERE
    WifiInfo info = wifiManager.getConnectionInfo();
    String address = info.getMacAddress();
} else {
    // ENABLE THE WIFI FIRST
    wifiManager.setWifiEnabled(true);

    // WIFI IS NOW ENABLED. GRAB THE MAC ADDRESS HERE
    WifiInfo info = wifiManager.getConnectionInfo();
    String address = info.getMacAddress();
}

マニフェストでこれらの権限の設定が必要になります

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

UPDATE_DEVICE_STATSこの場合、許可が必要かどうかは完全にはわかりません。飼う前にぜひ一度お試しください。

于 2013-02-19T04:54:54.350 に答える