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