diff options
-rw-r--r-- | wifi/java/android/net/wifi/WifiNative.java | 3 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 6 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pService.java | 14 |
3 files changed, 19 insertions, 4 deletions
diff --git a/wifi/java/android/net/wifi/WifiNative.java b/wifi/java/android/net/wifi/WifiNative.java index 83789e2..5626192 100644 --- a/wifi/java/android/net/wifi/WifiNative.java +++ b/wifi/java/android/net/wifi/WifiNative.java @@ -25,6 +25,7 @@ import android.util.Log; import java.util.ArrayList; import java.util.List; +import java.util.Locale; /** * Native calls for bring up/shut down of the supplicant daemon and for @@ -457,7 +458,7 @@ public class WifiNative { } public boolean setCountryCode(String countryCode) { - return doBooleanCommand("DRIVER COUNTRY " + countryCode); + return doBooleanCommand("DRIVER COUNTRY " + countryCode.toUpperCase(Locale.ROOT)); } public void enableBackgroundScan(boolean enable) { diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 3ccdbea..2bc22f2 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -88,7 +88,6 @@ import java.net.InetAddress; import java.net.Inet6Address; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicBoolean; import java.util.Iterator; @@ -1431,6 +1430,7 @@ public class WifiStateMachine extends StateMachine { countryCode); } sendMessage(CMD_SET_COUNTRY_CODE, countryCode); + mWifiP2pChannel.sendMessage(WifiP2pService.SET_COUNTRY_CODE, countryCode); } /** @@ -2952,7 +2952,7 @@ public class WifiStateMachine extends StateMachine { case CMD_SET_COUNTRY_CODE: String country = (String) message.obj; if (DBG) log("set country code " + country); - if (!mWifiNative.setCountryCode(country.toUpperCase(Locale.ROOT))) { + if (!mWifiNative.setCountryCode(country)) { loge("Failed to set country code " + country); } break; @@ -4256,7 +4256,7 @@ public class WifiStateMachine extends StateMachine { /** * arg2 on the source message has a unique id that needs to be retained in replies * to match the request - * + * see WifiManager for details */ private Message obtainMessageWithArg2(Message srcMsg) { diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java index 05196b8..625ffb8 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java @@ -174,6 +174,9 @@ public class WifiP2pService extends IWifiP2pManager.Stub { // msg.obj = StateMachine to send to when blocked public static final int BLOCK_DISCOVERY = BASE + 15; + // set country code + public static final int SET_COUNTRY_CODE = BASE + 16; + public static final int ENABLED = 1; public static final int DISABLED = 0; @@ -632,6 +635,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub { case WifiP2pManager.START_LISTEN: case WifiP2pManager.STOP_LISTEN: case WifiP2pManager.SET_CHANNEL: + case SET_COUNTRY_CODE: break; case WifiStateMachine.CMD_ENABLE_P2P: // Enable is lazy and has no response @@ -1064,6 +1068,10 @@ public class WifiP2pService extends IWifiP2pManager.Stub { replyToMessage(message, WifiP2pManager.SET_CHANNEL_FAILED); } break; + case SET_COUNTRY_CODE: + String countryCode = (String) message.obj; + mWifiNative.setCountryCode(countryCode); + break; default: return NOT_HANDLED; } @@ -2537,6 +2545,12 @@ public class WifiP2pService extends IWifiP2pManager.Stub { mServiceTransactionId = 0; mServiceDiscReqId = null; + String countryCode = Settings.Global.getString(mContext.getContentResolver(), + Settings.Global.WIFI_COUNTRY_CODE); + if (countryCode != null && !countryCode.isEmpty()) { + mP2pStateMachine.sendMessage(SET_COUNTRY_CODE, countryCode); + } + updatePersistentNetworks(RELOAD); } |