Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static final String
- CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled";
- ...
- MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED);
- adb shell settings put global captive_portal_detection_enabled 0
- adb shell settings list global | grep "captive"
- class ConnectWithoutInternetTest constructor(
- private val mContext: Context,
- private val connectivityManager: ConnectivityManager,
- private val wifiManager: WifiManager
- ) {
- private val mWifiBroadcastReceiver = object : BroadcastReceiver() {
- override fun onReceive(context: Context, intent: Intent) {
- when (intent.action) {
- WifiManager.NETWORK_STATE_CHANGED_ACTION -> {
- val info = intent.getParcelableExtra<NetworkInfo>(WifiManager.EXTRA_NETWORK_INFO)
- val isConnected = info.isConnected
- val ssid: String? = normalizeAndroidWifiSsid(wifiManager.connectionInfo?.ssid)
- if (isConnected) {
- val builder = NetworkRequest.Builder()
- builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
- connectivityManager.registerNetworkCallback(
- builder.build(),
- object : ConnectivityManager.NetworkCallback() {
- override fun onAvailable(network: Network) {
- super.onAvailable(network)
- val networkInfo = connectivityManager.getNetworkInfo(network)
- val networkSsid = networkInfo.extraInfo
- if (networkSsid == ssid) {
- connectivityManager.unregisterNetworkCallback(this)
- }
- }
- })
- }
- }
- }
- }
- }
- private fun init() {
- val intentFilter = IntentFilter()
- intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION)
- mContext.registerReceiver(mWifiBroadcastReceiver, intentFilter)
- }
- private fun destroy() {
- mContext.unregisterReceiver(mWifiBroadcastReceiver)
- }
- private fun normalizeAndroidWifiSsid(ssid: String?): String? {
- return ssid?.replace(""", "") ?: ssid
- }
- fun connectToWifi(ssidParam: String, password: String?) {
- init()
- val ssid = ""$ssidParam""
- val config = wifiManager.configuredNetworks.find { it.SSID == ssid }
- val netId = if (config != null) {
- config.networkId
- } else {
- val wifiConfig = WifiConfiguration()
- wifiConfig.SSID = ssid
- password?.let { wifiConfig.preSharedKey = ""$password"" }
- wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE)
- wifiManager.addNetwork(wifiConfig)
- }
- wifiManager.disconnect()
- val successful = wifiManager.enableNetwork(netId, true)
- }
Add Comment
Please, Sign In to add comment